mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-03 19:58:17 +00:00 
			
		
		
		
	Merge remote-tracking branch 'origin/master'
This commit is contained in:
		@@ -1,189 +1,203 @@
 | 
			
		||||
<!-- BEGIN MUNGE: GENERATED_TOC -->
 | 
			
		||||
 | 
			
		||||
- [v1.19.12](#v11912)
 | 
			
		||||
  - [Downloads for v1.19.12](#downloads-for-v11912)
 | 
			
		||||
- [v1.19.13](#v11913)
 | 
			
		||||
  - [Downloads for v1.19.13](#downloads-for-v11913)
 | 
			
		||||
    - [Source Code](#source-code)
 | 
			
		||||
    - [Client Binaries](#client-binaries)
 | 
			
		||||
    - [Server Binaries](#server-binaries)
 | 
			
		||||
    - [Node Binaries](#node-binaries)
 | 
			
		||||
  - [Changelog since v1.19.11](#changelog-since-v11911)
 | 
			
		||||
  - [Changelog since v1.19.12](#changelog-since-v11912)
 | 
			
		||||
  - [Changes by Kind](#changes-by-kind)
 | 
			
		||||
    - [Feature](#feature)
 | 
			
		||||
    - [Failing Test](#failing-test)
 | 
			
		||||
    - [Bug or Regression](#bug-or-regression)
 | 
			
		||||
    - [Other (Cleanup or Flake)](#other-cleanup-or-flake)
 | 
			
		||||
  - [Dependencies](#dependencies)
 | 
			
		||||
    - [Added](#added)
 | 
			
		||||
    - [Changed](#changed)
 | 
			
		||||
    - [Removed](#removed)
 | 
			
		||||
- [v1.19.11](#v11911)
 | 
			
		||||
  - [Downloads for v1.19.11](#downloads-for-v11911)
 | 
			
		||||
- [v1.19.12](#v11912)
 | 
			
		||||
  - [Downloads for v1.19.12](#downloads-for-v11912)
 | 
			
		||||
    - [Source Code](#source-code-1)
 | 
			
		||||
    - [Client Binaries](#client-binaries-1)
 | 
			
		||||
    - [Server Binaries](#server-binaries-1)
 | 
			
		||||
    - [Node Binaries](#node-binaries-1)
 | 
			
		||||
  - [Changelog since v1.19.10](#changelog-since-v11910)
 | 
			
		||||
  - [Changelog since v1.19.11](#changelog-since-v11911)
 | 
			
		||||
  - [Changes by Kind](#changes-by-kind-1)
 | 
			
		||||
    - [API Change](#api-change)
 | 
			
		||||
    - [Feature](#feature-1)
 | 
			
		||||
    - [Failing Test](#failing-test)
 | 
			
		||||
    - [Bug or Regression](#bug-or-regression-1)
 | 
			
		||||
    - [Other (Cleanup or Flake)](#other-cleanup-or-flake)
 | 
			
		||||
  - [Dependencies](#dependencies-1)
 | 
			
		||||
    - [Added](#added-1)
 | 
			
		||||
    - [Changed](#changed-1)
 | 
			
		||||
    - [Removed](#removed-1)
 | 
			
		||||
- [v1.19.10](#v11910)
 | 
			
		||||
  - [Downloads for v1.19.10](#downloads-for-v11910)
 | 
			
		||||
- [v1.19.11](#v11911)
 | 
			
		||||
  - [Downloads for v1.19.11](#downloads-for-v11911)
 | 
			
		||||
    - [Source Code](#source-code-2)
 | 
			
		||||
    - [Client binaries](#client-binaries-2)
 | 
			
		||||
    - [Server binaries](#server-binaries-2)
 | 
			
		||||
    - [Node binaries](#node-binaries-2)
 | 
			
		||||
  - [Changelog since v1.19.9](#changelog-since-v1199)
 | 
			
		||||
  - [Important Security Information](#important-security-information)
 | 
			
		||||
    - [CVE-2021-25735: Validating Admission Webhook does not observe some previous fields](#cve-2021-25735-validating-admission-webhook-does-not-observe-some-previous-fields)
 | 
			
		||||
    - [Client Binaries](#client-binaries-2)
 | 
			
		||||
    - [Server Binaries](#server-binaries-2)
 | 
			
		||||
    - [Node Binaries](#node-binaries-2)
 | 
			
		||||
  - [Changelog since v1.19.10](#changelog-since-v11910)
 | 
			
		||||
  - [Changes by Kind](#changes-by-kind-2)
 | 
			
		||||
    - [API Change](#api-change-1)
 | 
			
		||||
    - [API Change](#api-change)
 | 
			
		||||
    - [Feature](#feature-2)
 | 
			
		||||
    - [Bug or Regression](#bug-or-regression-2)
 | 
			
		||||
  - [Dependencies](#dependencies-2)
 | 
			
		||||
    - [Added](#added-2)
 | 
			
		||||
    - [Changed](#changed-2)
 | 
			
		||||
    - [Removed](#removed-2)
 | 
			
		||||
- [v1.19.9](#v1199)
 | 
			
		||||
  - [Downloads for v1.19.9](#downloads-for-v1199)
 | 
			
		||||
- [v1.19.10](#v11910)
 | 
			
		||||
  - [Downloads for v1.19.10](#downloads-for-v11910)
 | 
			
		||||
    - [Source Code](#source-code-3)
 | 
			
		||||
    - [Client binaries](#client-binaries-3)
 | 
			
		||||
    - [Server binaries](#server-binaries-3)
 | 
			
		||||
    - [Node binaries](#node-binaries-3)
 | 
			
		||||
  - [Changelog since v1.19.8](#changelog-since-v1198)
 | 
			
		||||
  - [Changelog since v1.19.9](#changelog-since-v1199)
 | 
			
		||||
  - [Important Security Information](#important-security-information)
 | 
			
		||||
    - [CVE-2021-25735: Validating Admission Webhook does not observe some previous fields](#cve-2021-25735-validating-admission-webhook-does-not-observe-some-previous-fields)
 | 
			
		||||
  - [Changes by Kind](#changes-by-kind-3)
 | 
			
		||||
    - [Failing Test](#failing-test-1)
 | 
			
		||||
    - [API Change](#api-change-1)
 | 
			
		||||
    - [Feature](#feature-3)
 | 
			
		||||
    - [Bug or Regression](#bug-or-regression-3)
 | 
			
		||||
  - [Dependencies](#dependencies-3)
 | 
			
		||||
    - [Added](#added-3)
 | 
			
		||||
    - [Changed](#changed-3)
 | 
			
		||||
    - [Removed](#removed-3)
 | 
			
		||||
- [v1.19.8](#v1198)
 | 
			
		||||
  - [Downloads for v1.19.8](#downloads-for-v1198)
 | 
			
		||||
- [v1.19.9](#v1199)
 | 
			
		||||
  - [Downloads for v1.19.9](#downloads-for-v1199)
 | 
			
		||||
    - [Source Code](#source-code-4)
 | 
			
		||||
    - [Client binaries](#client-binaries-4)
 | 
			
		||||
    - [Server binaries](#server-binaries-4)
 | 
			
		||||
    - [Node binaries](#node-binaries-4)
 | 
			
		||||
  - [Changelog since v1.19.7](#changelog-since-v1197)
 | 
			
		||||
  - [Changelog since v1.19.8](#changelog-since-v1198)
 | 
			
		||||
  - [Changes by Kind](#changes-by-kind-4)
 | 
			
		||||
    - [API Change](#api-change-2)
 | 
			
		||||
    - [Failing Test](#failing-test-1)
 | 
			
		||||
    - [Bug or Regression](#bug-or-regression-4)
 | 
			
		||||
    - [Other (Cleanup or Flake)](#other-cleanup-or-flake-1)
 | 
			
		||||
  - [Dependencies](#dependencies-4)
 | 
			
		||||
    - [Added](#added-4)
 | 
			
		||||
    - [Changed](#changed-4)
 | 
			
		||||
    - [Removed](#removed-4)
 | 
			
		||||
- [v1.19.7](#v1197)
 | 
			
		||||
  - [Downloads for v1.19.7](#downloads-for-v1197)
 | 
			
		||||
- [v1.19.8](#v1198)
 | 
			
		||||
  - [Downloads for v1.19.8](#downloads-for-v1198)
 | 
			
		||||
    - [Source Code](#source-code-5)
 | 
			
		||||
    - [Client binaries](#client-binaries-5)
 | 
			
		||||
    - [Server binaries](#server-binaries-5)
 | 
			
		||||
    - [Node binaries](#node-binaries-5)
 | 
			
		||||
  - [Changelog since v1.19.6](#changelog-since-v1196)
 | 
			
		||||
  - [Changelog since v1.19.7](#changelog-since-v1197)
 | 
			
		||||
  - [Changes by Kind](#changes-by-kind-5)
 | 
			
		||||
    - [API Change](#api-change-2)
 | 
			
		||||
    - [Bug or Regression](#bug-or-regression-5)
 | 
			
		||||
    - [Other (Cleanup or Flake)](#other-cleanup-or-flake-1)
 | 
			
		||||
  - [Dependencies](#dependencies-5)
 | 
			
		||||
    - [Added](#added-5)
 | 
			
		||||
    - [Changed](#changed-5)
 | 
			
		||||
    - [Removed](#removed-5)
 | 
			
		||||
- [v1.19.6](#v1196)
 | 
			
		||||
  - [Downloads for v1.19.6](#downloads-for-v1196)
 | 
			
		||||
- [v1.19.7](#v1197)
 | 
			
		||||
  - [Downloads for v1.19.7](#downloads-for-v1197)
 | 
			
		||||
    - [Source Code](#source-code-6)
 | 
			
		||||
    - [Client binaries](#client-binaries-6)
 | 
			
		||||
    - [Server binaries](#server-binaries-6)
 | 
			
		||||
    - [Node binaries](#node-binaries-6)
 | 
			
		||||
  - [Changelog since v1.19.5](#changelog-since-v1195)
 | 
			
		||||
  - [Changelog since v1.19.6](#changelog-since-v1196)
 | 
			
		||||
  - [Changes by Kind](#changes-by-kind-6)
 | 
			
		||||
    - [Feature](#feature-3)
 | 
			
		||||
    - [Bug or Regression](#bug-or-regression-6)
 | 
			
		||||
    - [Other (Cleanup or Flake)](#other-cleanup-or-flake-2)
 | 
			
		||||
  - [Dependencies](#dependencies-6)
 | 
			
		||||
    - [Added](#added-6)
 | 
			
		||||
    - [Changed](#changed-6)
 | 
			
		||||
    - [Removed](#removed-6)
 | 
			
		||||
- [v1.19.5](#v1195)
 | 
			
		||||
  - [Downloads for v1.19.5](#downloads-for-v1195)
 | 
			
		||||
- [v1.19.6](#v1196)
 | 
			
		||||
  - [Downloads for v1.19.6](#downloads-for-v1196)
 | 
			
		||||
    - [Source Code](#source-code-7)
 | 
			
		||||
    - [Client binaries](#client-binaries-7)
 | 
			
		||||
    - [Server binaries](#server-binaries-7)
 | 
			
		||||
    - [Node binaries](#node-binaries-7)
 | 
			
		||||
  - [Changelog since v1.19.4](#changelog-since-v1194)
 | 
			
		||||
  - [Changelog since v1.19.5](#changelog-since-v1195)
 | 
			
		||||
  - [Changes by Kind](#changes-by-kind-7)
 | 
			
		||||
    - [Feature](#feature-4)
 | 
			
		||||
    - [Failing Test](#failing-test-2)
 | 
			
		||||
    - [Bug or Regression](#bug-or-regression-7)
 | 
			
		||||
    - [Other (Cleanup or Flake)](#other-cleanup-or-flake-2)
 | 
			
		||||
  - [Dependencies](#dependencies-7)
 | 
			
		||||
    - [Added](#added-7)
 | 
			
		||||
    - [Changed](#changed-7)
 | 
			
		||||
    - [Removed](#removed-7)
 | 
			
		||||
- [v1.19.4](#v1194)
 | 
			
		||||
  - [Downloads for v1.19.4](#downloads-for-v1194)
 | 
			
		||||
- [v1.19.5](#v1195)
 | 
			
		||||
  - [Downloads for v1.19.5](#downloads-for-v1195)
 | 
			
		||||
    - [Source Code](#source-code-8)
 | 
			
		||||
    - [Client binaries](#client-binaries-8)
 | 
			
		||||
    - [Server binaries](#server-binaries-8)
 | 
			
		||||
    - [Node binaries](#node-binaries-8)
 | 
			
		||||
  - [Changelog since v1.19.3](#changelog-since-v1193)
 | 
			
		||||
  - [Changelog since v1.19.4](#changelog-since-v1194)
 | 
			
		||||
  - [Changes by Kind](#changes-by-kind-8)
 | 
			
		||||
    - [Feature](#feature-5)
 | 
			
		||||
    - [Failing Test](#failing-test-2)
 | 
			
		||||
    - [Bug or Regression](#bug-or-regression-8)
 | 
			
		||||
  - [Dependencies](#dependencies-8)
 | 
			
		||||
    - [Added](#added-8)
 | 
			
		||||
    - [Changed](#changed-8)
 | 
			
		||||
    - [Removed](#removed-8)
 | 
			
		||||
- [v1.19.3](#v1193)
 | 
			
		||||
  - [Downloads for v1.19.3](#downloads-for-v1193)
 | 
			
		||||
- [v1.19.4](#v1194)
 | 
			
		||||
  - [Downloads for v1.19.4](#downloads-for-v1194)
 | 
			
		||||
    - [Source Code](#source-code-9)
 | 
			
		||||
    - [Client binaries](#client-binaries-9)
 | 
			
		||||
    - [Server binaries](#server-binaries-9)
 | 
			
		||||
    - [Node binaries](#node-binaries-9)
 | 
			
		||||
  - [Changelog since v1.19.2](#changelog-since-v1192)
 | 
			
		||||
  - [Changelog since v1.19.3](#changelog-since-v1193)
 | 
			
		||||
  - [Changes by Kind](#changes-by-kind-9)
 | 
			
		||||
    - [Feature](#feature-5)
 | 
			
		||||
    - [Design](#design)
 | 
			
		||||
    - [Bug or Regression](#bug-or-regression-9)
 | 
			
		||||
    - [Other (Cleanup or Flake)](#other-cleanup-or-flake-3)
 | 
			
		||||
  - [Dependencies](#dependencies-9)
 | 
			
		||||
    - [Added](#added-9)
 | 
			
		||||
    - [Changed](#changed-9)
 | 
			
		||||
    - [Removed](#removed-9)
 | 
			
		||||
- [v1.19.2](#v1192)
 | 
			
		||||
  - [Downloads for v1.19.2](#downloads-for-v1192)
 | 
			
		||||
- [v1.19.3](#v1193)
 | 
			
		||||
  - [Downloads for v1.19.3](#downloads-for-v1193)
 | 
			
		||||
    - [Source Code](#source-code-10)
 | 
			
		||||
    - [Client binaries](#client-binaries-10)
 | 
			
		||||
    - [Server binaries](#server-binaries-10)
 | 
			
		||||
    - [Node binaries](#node-binaries-10)
 | 
			
		||||
  - [Changelog since v1.19.1](#changelog-since-v1191)
 | 
			
		||||
  - [Changelog since v1.19.2](#changelog-since-v1192)
 | 
			
		||||
  - [Changes by Kind](#changes-by-kind-10)
 | 
			
		||||
    - [API Change](#api-change-3)
 | 
			
		||||
    - [Feature](#feature-6)
 | 
			
		||||
    - [Design](#design)
 | 
			
		||||
    - [Bug or Regression](#bug-or-regression-10)
 | 
			
		||||
    - [Other (Cleanup or Flake)](#other-cleanup-or-flake-4)
 | 
			
		||||
    - [Other (Cleanup or Flake)](#other-cleanup-or-flake-3)
 | 
			
		||||
  - [Dependencies](#dependencies-10)
 | 
			
		||||
    - [Added](#added-10)
 | 
			
		||||
    - [Changed](#changed-10)
 | 
			
		||||
    - [Removed](#removed-10)
 | 
			
		||||
- [v1.19.1](#v1191)
 | 
			
		||||
  - [Downloads for v1.19.1](#downloads-for-v1191)
 | 
			
		||||
- [v1.19.2](#v1192)
 | 
			
		||||
  - [Downloads for v1.19.2](#downloads-for-v1192)
 | 
			
		||||
    - [Source Code](#source-code-11)
 | 
			
		||||
    - [Client binaries](#client-binaries-11)
 | 
			
		||||
    - [Server binaries](#server-binaries-11)
 | 
			
		||||
    - [Node binaries](#node-binaries-11)
 | 
			
		||||
  - [Changelog since v1.19.0](#changelog-since-v1190)
 | 
			
		||||
  - [Changelog since v1.19.1](#changelog-since-v1191)
 | 
			
		||||
  - [Changes by Kind](#changes-by-kind-11)
 | 
			
		||||
    - [API Change](#api-change-3)
 | 
			
		||||
    - [Bug or Regression](#bug-or-regression-11)
 | 
			
		||||
    - [Other (Cleanup or Flake)](#other-cleanup-or-flake-5)
 | 
			
		||||
    - [Other (Cleanup or Flake)](#other-cleanup-or-flake-4)
 | 
			
		||||
  - [Dependencies](#dependencies-11)
 | 
			
		||||
    - [Added](#added-11)
 | 
			
		||||
    - [Changed](#changed-11)
 | 
			
		||||
    - [Removed](#removed-11)
 | 
			
		||||
- [v1.19.1](#v1191)
 | 
			
		||||
  - [Downloads for v1.19.1](#downloads-for-v1191)
 | 
			
		||||
    - [Source Code](#source-code-12)
 | 
			
		||||
    - [Client binaries](#client-binaries-12)
 | 
			
		||||
    - [Server binaries](#server-binaries-12)
 | 
			
		||||
    - [Node binaries](#node-binaries-12)
 | 
			
		||||
  - [Changelog since v1.19.0](#changelog-since-v1190)
 | 
			
		||||
  - [Changes by Kind](#changes-by-kind-12)
 | 
			
		||||
    - [Bug or Regression](#bug-or-regression-12)
 | 
			
		||||
    - [Other (Cleanup or Flake)](#other-cleanup-or-flake-5)
 | 
			
		||||
  - [Dependencies](#dependencies-12)
 | 
			
		||||
    - [Added](#added-12)
 | 
			
		||||
    - [Changed](#changed-12)
 | 
			
		||||
    - [Removed](#removed-12)
 | 
			
		||||
- [v1.19.0](#v1190)
 | 
			
		||||
  - [Downloads for v1.19.0](#downloads-for-v1190)
 | 
			
		||||
    - [Source Code](#source-code-12)
 | 
			
		||||
    - [Client Binaries](#client-binaries-12)
 | 
			
		||||
    - [Server Binaries](#server-binaries-12)
 | 
			
		||||
    - [Node Binaries](#node-binaries-12)
 | 
			
		||||
    - [Source Code](#source-code-13)
 | 
			
		||||
    - [Client Binaries](#client-binaries-13)
 | 
			
		||||
    - [Server Binaries](#server-binaries-13)
 | 
			
		||||
    - [Node Binaries](#node-binaries-13)
 | 
			
		||||
  - [Changelog since v1.18.0](#changelog-since-v1180)
 | 
			
		||||
  - [What’s New (Major Themes)](#whats-new-major-themes)
 | 
			
		||||
    - [Deprecation warnings](#deprecation-warnings)
 | 
			
		||||
@@ -207,185 +221,263 @@
 | 
			
		||||
  - [Known Issues](#known-issues)
 | 
			
		||||
  - [Urgent Upgrade Notes](#urgent-upgrade-notes)
 | 
			
		||||
    - [(No, really, you MUST read this before you upgrade)](#no-really-you-must-read-this-before-you-upgrade)
 | 
			
		||||
  - [Changes by Kind](#changes-by-kind-12)
 | 
			
		||||
  - [Changes by Kind](#changes-by-kind-13)
 | 
			
		||||
    - [Deprecation](#deprecation)
 | 
			
		||||
    - [API Change](#api-change-4)
 | 
			
		||||
    - [Feature](#feature-6)
 | 
			
		||||
    - [Feature](#feature-7)
 | 
			
		||||
    - [Documentation](#documentation)
 | 
			
		||||
    - [Failing Test](#failing-test-3)
 | 
			
		||||
    - [Bug or Regression](#bug-or-regression-12)
 | 
			
		||||
    - [Bug or Regression](#bug-or-regression-13)
 | 
			
		||||
    - [Other (Cleanup or Flake)](#other-cleanup-or-flake-6)
 | 
			
		||||
  - [Dependencies](#dependencies-12)
 | 
			
		||||
    - [Added](#added-12)
 | 
			
		||||
    - [Changed](#changed-12)
 | 
			
		||||
    - [Removed](#removed-12)
 | 
			
		||||
  - [Dependencies](#dependencies-13)
 | 
			
		||||
    - [Added](#added-13)
 | 
			
		||||
    - [Changed](#changed-13)
 | 
			
		||||
    - [Removed](#removed-13)
 | 
			
		||||
- [v1.19.0-rc.4](#v1190-rc4)
 | 
			
		||||
  - [Downloads for v1.19.0-rc.4](#downloads-for-v1190-rc4)
 | 
			
		||||
    - [Source Code](#source-code-13)
 | 
			
		||||
    - [Client binaries](#client-binaries-13)
 | 
			
		||||
    - [Server binaries](#server-binaries-13)
 | 
			
		||||
    - [Node binaries](#node-binaries-13)
 | 
			
		||||
  - [Changelog since v1.19.0-rc.3](#changelog-since-v1190-rc3)
 | 
			
		||||
  - [Changes by Kind](#changes-by-kind-13)
 | 
			
		||||
    - [Deprecation](#deprecation-1)
 | 
			
		||||
    - [Bug or Regression](#bug-or-regression-13)
 | 
			
		||||
    - [Other (Cleanup or Flake)](#other-cleanup-or-flake-7)
 | 
			
		||||
  - [Dependencies](#dependencies-14)
 | 
			
		||||
    - [Added](#added-14)
 | 
			
		||||
    - [Changed](#changed-14)
 | 
			
		||||
    - [Removed](#removed-14)
 | 
			
		||||
- [v1.19.0-rc.3](#v1190-rc3)
 | 
			
		||||
  - [Downloads for v1.19.0-rc.3](#downloads-for-v1190-rc3)
 | 
			
		||||
- [v1.19.0-rc.4](#v1190-rc4)
 | 
			
		||||
  - [Downloads for v1.19.0-rc.4](#downloads-for-v1190-rc4)
 | 
			
		||||
    - [Source Code](#source-code-14)
 | 
			
		||||
    - [Client binaries](#client-binaries-14)
 | 
			
		||||
    - [Server binaries](#server-binaries-14)
 | 
			
		||||
    - [Node binaries](#node-binaries-14)
 | 
			
		||||
  - [Changelog since v1.19.0-rc.2](#changelog-since-v1190-rc2)
 | 
			
		||||
  - [Changelog since v1.19.0-rc.3](#changelog-since-v1190-rc3)
 | 
			
		||||
  - [Changes by Kind](#changes-by-kind-14)
 | 
			
		||||
    - [API Change](#api-change-5)
 | 
			
		||||
    - [Deprecation](#deprecation-1)
 | 
			
		||||
    - [Bug or Regression](#bug-or-regression-14)
 | 
			
		||||
    - [Other (Cleanup or Flake)](#other-cleanup-or-flake-7)
 | 
			
		||||
  - [Dependencies](#dependencies-15)
 | 
			
		||||
    - [Added](#added-15)
 | 
			
		||||
    - [Changed](#changed-15)
 | 
			
		||||
    - [Removed](#removed-15)
 | 
			
		||||
- [v1.19.0-rc.2](#v1190-rc2)
 | 
			
		||||
  - [Downloads for v1.19.0-rc.2](#downloads-for-v1190-rc2)
 | 
			
		||||
- [v1.19.0-rc.3](#v1190-rc3)
 | 
			
		||||
  - [Downloads for v1.19.0-rc.3](#downloads-for-v1190-rc3)
 | 
			
		||||
    - [Source Code](#source-code-15)
 | 
			
		||||
    - [Client binaries](#client-binaries-15)
 | 
			
		||||
    - [Server binaries](#server-binaries-15)
 | 
			
		||||
    - [Node binaries](#node-binaries-15)
 | 
			
		||||
  - [Changelog since v1.19.0-rc.1](#changelog-since-v1190-rc1)
 | 
			
		||||
  - [Changelog since v1.19.0-rc.2](#changelog-since-v1190-rc2)
 | 
			
		||||
  - [Changes by Kind](#changes-by-kind-15)
 | 
			
		||||
    - [API Change](#api-change-6)
 | 
			
		||||
    - [Feature](#feature-7)
 | 
			
		||||
    - [API Change](#api-change-5)
 | 
			
		||||
    - [Bug or Regression](#bug-or-regression-15)
 | 
			
		||||
    - [Other (Cleanup or Flake)](#other-cleanup-or-flake-8)
 | 
			
		||||
  - [Dependencies](#dependencies-16)
 | 
			
		||||
    - [Added](#added-16)
 | 
			
		||||
    - [Changed](#changed-16)
 | 
			
		||||
    - [Removed](#removed-16)
 | 
			
		||||
- [v1.19.0-rc.1](#v1190-rc1)
 | 
			
		||||
  - [Downloads for v1.19.0-rc.1](#downloads-for-v1190-rc1)
 | 
			
		||||
- [v1.19.0-rc.2](#v1190-rc2)
 | 
			
		||||
  - [Downloads for v1.19.0-rc.2](#downloads-for-v1190-rc2)
 | 
			
		||||
    - [Source Code](#source-code-16)
 | 
			
		||||
    - [Client binaries](#client-binaries-16)
 | 
			
		||||
    - [Server binaries](#server-binaries-16)
 | 
			
		||||
    - [Node binaries](#node-binaries-16)
 | 
			
		||||
  - [Changelog since v1.19.0-rc.0](#changelog-since-v1190-rc0)
 | 
			
		||||
  - [Urgent Upgrade Notes](#urgent-upgrade-notes-1)
 | 
			
		||||
    - [(No, really, you MUST read this before you upgrade)](#no-really-you-must-read-this-before-you-upgrade-1)
 | 
			
		||||
  - [Changelog since v1.19.0-rc.1](#changelog-since-v1190-rc1)
 | 
			
		||||
  - [Changes by Kind](#changes-by-kind-16)
 | 
			
		||||
    - [Deprecation](#deprecation-2)
 | 
			
		||||
    - [API Change](#api-change-7)
 | 
			
		||||
    - [API Change](#api-change-6)
 | 
			
		||||
    - [Feature](#feature-8)
 | 
			
		||||
    - [Failing Test](#failing-test-4)
 | 
			
		||||
    - [Bug or Regression](#bug-or-regression-16)
 | 
			
		||||
    - [Other (Cleanup or Flake)](#other-cleanup-or-flake-9)
 | 
			
		||||
    - [Other (Cleanup or Flake)](#other-cleanup-or-flake-8)
 | 
			
		||||
  - [Dependencies](#dependencies-17)
 | 
			
		||||
    - [Added](#added-17)
 | 
			
		||||
    - [Changed](#changed-17)
 | 
			
		||||
    - [Removed](#removed-17)
 | 
			
		||||
- [v1.19.0-beta.2](#v1190-beta2)
 | 
			
		||||
  - [Downloads for v1.19.0-beta.2](#downloads-for-v1190-beta2)
 | 
			
		||||
- [v1.19.0-rc.1](#v1190-rc1)
 | 
			
		||||
  - [Downloads for v1.19.0-rc.1](#downloads-for-v1190-rc1)
 | 
			
		||||
    - [Source Code](#source-code-17)
 | 
			
		||||
    - [Client binaries](#client-binaries-17)
 | 
			
		||||
    - [Server binaries](#server-binaries-17)
 | 
			
		||||
    - [Node binaries](#node-binaries-17)
 | 
			
		||||
  - [Changelog since v1.19.0-beta.1](#changelog-since-v1190-beta1)
 | 
			
		||||
  - [Changelog since v1.19.0-rc.0](#changelog-since-v1190-rc0)
 | 
			
		||||
  - [Urgent Upgrade Notes](#urgent-upgrade-notes-1)
 | 
			
		||||
    - [(No, really, you MUST read this before you upgrade)](#no-really-you-must-read-this-before-you-upgrade-1)
 | 
			
		||||
  - [Changes by Kind](#changes-by-kind-17)
 | 
			
		||||
    - [Deprecation](#deprecation-3)
 | 
			
		||||
    - [API Change](#api-change-8)
 | 
			
		||||
    - [Deprecation](#deprecation-2)
 | 
			
		||||
    - [API Change](#api-change-7)
 | 
			
		||||
    - [Feature](#feature-9)
 | 
			
		||||
    - [Failing Test](#failing-test-4)
 | 
			
		||||
    - [Bug or Regression](#bug-or-regression-17)
 | 
			
		||||
    - [Other (Cleanup or Flake)](#other-cleanup-or-flake-10)
 | 
			
		||||
    - [Other (Cleanup or Flake)](#other-cleanup-or-flake-9)
 | 
			
		||||
  - [Dependencies](#dependencies-18)
 | 
			
		||||
    - [Added](#added-18)
 | 
			
		||||
    - [Changed](#changed-18)
 | 
			
		||||
    - [Removed](#removed-18)
 | 
			
		||||
- [v1.19.0-beta.1](#v1190-beta1)
 | 
			
		||||
  - [Downloads for v1.19.0-beta.1](#downloads-for-v1190-beta1)
 | 
			
		||||
- [v1.19.0-beta.2](#v1190-beta2)
 | 
			
		||||
  - [Downloads for v1.19.0-beta.2](#downloads-for-v1190-beta2)
 | 
			
		||||
    - [Source Code](#source-code-18)
 | 
			
		||||
    - [Client binaries](#client-binaries-18)
 | 
			
		||||
    - [Server binaries](#server-binaries-18)
 | 
			
		||||
    - [Node binaries](#node-binaries-18)
 | 
			
		||||
  - [Changelog since v1.19.0-alpha.3](#changelog-since-v1190-alpha3)
 | 
			
		||||
  - [Urgent Upgrade Notes](#urgent-upgrade-notes-2)
 | 
			
		||||
    - [(No, really, you MUST read this before you upgrade)](#no-really-you-must-read-this-before-you-upgrade-2)
 | 
			
		||||
  - [Changelog since v1.19.0-beta.1](#changelog-since-v1190-beta1)
 | 
			
		||||
  - [Changes by Kind](#changes-by-kind-18)
 | 
			
		||||
    - [API Change](#api-change-9)
 | 
			
		||||
    - [Deprecation](#deprecation-3)
 | 
			
		||||
    - [API Change](#api-change-8)
 | 
			
		||||
    - [Feature](#feature-10)
 | 
			
		||||
    - [Bug or Regression](#bug-or-regression-18)
 | 
			
		||||
    - [Other (Cleanup or Flake)](#other-cleanup-or-flake-11)
 | 
			
		||||
    - [Other (Cleanup or Flake)](#other-cleanup-or-flake-10)
 | 
			
		||||
  - [Dependencies](#dependencies-19)
 | 
			
		||||
    - [Added](#added-19)
 | 
			
		||||
    - [Changed](#changed-19)
 | 
			
		||||
    - [Removed](#removed-19)
 | 
			
		||||
- [v1.19.0-beta.0](#v1190-beta0)
 | 
			
		||||
  - [Downloads for v1.19.0-beta.0](#downloads-for-v1190-beta0)
 | 
			
		||||
- [v1.19.0-beta.1](#v1190-beta1)
 | 
			
		||||
  - [Downloads for v1.19.0-beta.1](#downloads-for-v1190-beta1)
 | 
			
		||||
    - [Source Code](#source-code-19)
 | 
			
		||||
    - [Client binaries](#client-binaries-19)
 | 
			
		||||
    - [Server binaries](#server-binaries-19)
 | 
			
		||||
    - [Node binaries](#node-binaries-19)
 | 
			
		||||
  - [Changelog since v1.19.0-alpha.3](#changelog-since-v1190-alpha3-1)
 | 
			
		||||
  - [Changelog since v1.19.0-alpha.3](#changelog-since-v1190-alpha3)
 | 
			
		||||
  - [Urgent Upgrade Notes](#urgent-upgrade-notes-2)
 | 
			
		||||
    - [(No, really, you MUST read this before you upgrade)](#no-really-you-must-read-this-before-you-upgrade-2)
 | 
			
		||||
  - [Changes by Kind](#changes-by-kind-19)
 | 
			
		||||
    - [API Change](#api-change-10)
 | 
			
		||||
    - [API Change](#api-change-9)
 | 
			
		||||
    - [Feature](#feature-11)
 | 
			
		||||
    - [Bug or Regression](#bug-or-regression-19)
 | 
			
		||||
    - [Other (Cleanup or Flake)](#other-cleanup-or-flake-12)
 | 
			
		||||
    - [Other (Cleanup or Flake)](#other-cleanup-or-flake-11)
 | 
			
		||||
  - [Dependencies](#dependencies-20)
 | 
			
		||||
    - [Added](#added-20)
 | 
			
		||||
    - [Changed](#changed-20)
 | 
			
		||||
    - [Removed](#removed-20)
 | 
			
		||||
- [v1.19.0-alpha.3](#v1190-alpha3)
 | 
			
		||||
  - [Downloads for v1.19.0-alpha.3](#downloads-for-v1190-alpha3)
 | 
			
		||||
- [v1.19.0-beta.0](#v1190-beta0)
 | 
			
		||||
  - [Downloads for v1.19.0-beta.0](#downloads-for-v1190-beta0)
 | 
			
		||||
    - [Source Code](#source-code-20)
 | 
			
		||||
    - [Client Binaries](#client-binaries-20)
 | 
			
		||||
    - [Server Binaries](#server-binaries-20)
 | 
			
		||||
    - [Node Binaries](#node-binaries-20)
 | 
			
		||||
  - [Changelog since v1.19.0-alpha.2](#changelog-since-v1190-alpha2)
 | 
			
		||||
  - [Urgent Upgrade Notes](#urgent-upgrade-notes-3)
 | 
			
		||||
    - [(No, really, you MUST read this before you upgrade)](#no-really-you-must-read-this-before-you-upgrade-3)
 | 
			
		||||
    - [Client binaries](#client-binaries-20)
 | 
			
		||||
    - [Server binaries](#server-binaries-20)
 | 
			
		||||
    - [Node binaries](#node-binaries-20)
 | 
			
		||||
  - [Changelog since v1.19.0-alpha.3](#changelog-since-v1190-alpha3-1)
 | 
			
		||||
  - [Changes by Kind](#changes-by-kind-20)
 | 
			
		||||
    - [Deprecation](#deprecation-4)
 | 
			
		||||
    - [API Change](#api-change-11)
 | 
			
		||||
    - [API Change](#api-change-10)
 | 
			
		||||
    - [Feature](#feature-12)
 | 
			
		||||
    - [Bug or Regression](#bug-or-regression-20)
 | 
			
		||||
    - [Other (Cleanup or Flake)](#other-cleanup-or-flake-13)
 | 
			
		||||
- [v1.19.0-alpha.2](#v1190-alpha2)
 | 
			
		||||
  - [Downloads for v1.19.0-alpha.2](#downloads-for-v1190-alpha2)
 | 
			
		||||
    - [Other (Cleanup or Flake)](#other-cleanup-or-flake-12)
 | 
			
		||||
  - [Dependencies](#dependencies-21)
 | 
			
		||||
    - [Added](#added-21)
 | 
			
		||||
    - [Changed](#changed-21)
 | 
			
		||||
    - [Removed](#removed-21)
 | 
			
		||||
- [v1.19.0-alpha.3](#v1190-alpha3)
 | 
			
		||||
  - [Downloads for v1.19.0-alpha.3](#downloads-for-v1190-alpha3)
 | 
			
		||||
    - [Source Code](#source-code-21)
 | 
			
		||||
    - [Client Binaries](#client-binaries-21)
 | 
			
		||||
    - [Server Binaries](#server-binaries-21)
 | 
			
		||||
    - [Node Binaries](#node-binaries-21)
 | 
			
		||||
  - [Changelog since v1.19.0-alpha.1](#changelog-since-v1190-alpha1)
 | 
			
		||||
  - [Urgent Upgrade Notes](#urgent-upgrade-notes-4)
 | 
			
		||||
    - [(No, really, you MUST read this before you upgrade)](#no-really-you-must-read-this-before-you-upgrade-4)
 | 
			
		||||
  - [Changelog since v1.19.0-alpha.2](#changelog-since-v1190-alpha2)
 | 
			
		||||
  - [Urgent Upgrade Notes](#urgent-upgrade-notes-3)
 | 
			
		||||
    - [(No, really, you MUST read this before you upgrade)](#no-really-you-must-read-this-before-you-upgrade-3)
 | 
			
		||||
  - [Changes by Kind](#changes-by-kind-21)
 | 
			
		||||
    - [API Change](#api-change-12)
 | 
			
		||||
    - [Deprecation](#deprecation-4)
 | 
			
		||||
    - [API Change](#api-change-11)
 | 
			
		||||
    - [Feature](#feature-13)
 | 
			
		||||
    - [Bug or Regression](#bug-or-regression-21)
 | 
			
		||||
    - [Other (Cleanup or Flake)](#other-cleanup-or-flake-14)
 | 
			
		||||
- [v1.19.0-alpha.1](#v1190-alpha1)
 | 
			
		||||
  - [Downloads for v1.19.0-alpha.1](#downloads-for-v1190-alpha1)
 | 
			
		||||
    - [Other (Cleanup or Flake)](#other-cleanup-or-flake-13)
 | 
			
		||||
- [v1.19.0-alpha.2](#v1190-alpha2)
 | 
			
		||||
  - [Downloads for v1.19.0-alpha.2](#downloads-for-v1190-alpha2)
 | 
			
		||||
    - [Source Code](#source-code-22)
 | 
			
		||||
    - [Client Binaries](#client-binaries-22)
 | 
			
		||||
    - [Server Binaries](#server-binaries-22)
 | 
			
		||||
    - [Node Binaries](#node-binaries-22)
 | 
			
		||||
  - [Changelog since v1.19.0-alpha.1](#changelog-since-v1190-alpha1)
 | 
			
		||||
  - [Urgent Upgrade Notes](#urgent-upgrade-notes-4)
 | 
			
		||||
    - [(No, really, you MUST read this before you upgrade)](#no-really-you-must-read-this-before-you-upgrade-4)
 | 
			
		||||
  - [Changes by Kind](#changes-by-kind-22)
 | 
			
		||||
    - [API Change](#api-change-12)
 | 
			
		||||
    - [Feature](#feature-14)
 | 
			
		||||
    - [Bug or Regression](#bug-or-regression-22)
 | 
			
		||||
    - [Other (Cleanup or Flake)](#other-cleanup-or-flake-14)
 | 
			
		||||
- [v1.19.0-alpha.1](#v1190-alpha1)
 | 
			
		||||
  - [Downloads for v1.19.0-alpha.1](#downloads-for-v1190-alpha1)
 | 
			
		||||
    - [Source Code](#source-code-23)
 | 
			
		||||
    - [Client Binaries](#client-binaries-23)
 | 
			
		||||
    - [Server Binaries](#server-binaries-23)
 | 
			
		||||
    - [Node Binaries](#node-binaries-23)
 | 
			
		||||
  - [Changelog since v1.19.0-alpha.0](#changelog-since-v1190-alpha0)
 | 
			
		||||
  - [Urgent Upgrade Notes](#urgent-upgrade-notes-5)
 | 
			
		||||
    - [(No, really, you MUST read this before you upgrade)](#no-really-you-must-read-this-before-you-upgrade-5)
 | 
			
		||||
  - [Changes by Kind](#changes-by-kind-22)
 | 
			
		||||
  - [Changes by Kind](#changes-by-kind-23)
 | 
			
		||||
    - [Deprecation](#deprecation-5)
 | 
			
		||||
    - [API Change](#api-change-13)
 | 
			
		||||
    - [Feature](#feature-14)
 | 
			
		||||
    - [Feature](#feature-15)
 | 
			
		||||
    - [Documentation](#documentation-1)
 | 
			
		||||
    - [Other (Bug, Cleanup or Flake)](#other-bug-cleanup-or-flake)
 | 
			
		||||
 | 
			
		||||
<!-- END MUNGE: GENERATED_TOC -->
 | 
			
		||||
 | 
			
		||||
# v1.19.13
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## Downloads for v1.19.13
 | 
			
		||||
 | 
			
		||||
### Source Code
 | 
			
		||||
 | 
			
		||||
filename | sha512 hash
 | 
			
		||||
-------- | -----------
 | 
			
		||||
[kubernetes.tar.gz](https://dl.k8s.io/v1.19.13/kubernetes.tar.gz) | c33be1c413e38b29fd14740b5444d08896e9919c26f5e56934c1fef8e7cde8c1371b410d2b8fe511e6406bb72b013a4e68ca11efcb90573a56a79626cd74f381
 | 
			
		||||
[kubernetes-src.tar.gz](https://dl.k8s.io/v1.19.13/kubernetes-src.tar.gz) | d6e243defa828ec38868dab3be654c3c889b948d3d691ec22144a28fb5d9b59f86f917a01a482ce655f12a2065b28ea638c2380b73d8feee12b00e293c69fb1e
 | 
			
		||||
 | 
			
		||||
### Client Binaries
 | 
			
		||||
 | 
			
		||||
filename | sha512 hash
 | 
			
		||||
-------- | -----------
 | 
			
		||||
[kubernetes-client-darwin-amd64.tar.gz](https://dl.k8s.io/v1.19.13/kubernetes-client-darwin-amd64.tar.gz) | fd3b3ae3fb86bffae9504fa2c32791934cac3277f3fa70c1dd18e078d5f97cd9e1842301519de41cfd5835fb7689bc82055e81d25123796ccfcdd70311d8431b
 | 
			
		||||
[kubernetes-client-linux-386.tar.gz](https://dl.k8s.io/v1.19.13/kubernetes-client-linux-386.tar.gz) | 4e165e93ec9ba8e5a08f34eacafb0b6f87e91f1894719f12a08125417ba505a953b0ab60e5270467be8b6a9b667d90528ed1d837d089ae95db977d154d75d927
 | 
			
		||||
[kubernetes-client-linux-amd64.tar.gz](https://dl.k8s.io/v1.19.13/kubernetes-client-linux-amd64.tar.gz) | 156fb003f1b29226c1a89fed2231c96071c8c52e428dd16dd24bc4159109e755a3ca1c30aae5ec8fad70467d73e06140c7e794b0f2065832b5d14980b2ba7e36
 | 
			
		||||
[kubernetes-client-linux-arm.tar.gz](https://dl.k8s.io/v1.19.13/kubernetes-client-linux-arm.tar.gz) | c307e294160cd4105e44ab68ad53515fcd63db4eb0b4c0f26429ca45d15a31f686285f24b6013c22e2bf3f5a73449849db361f066f28a27519809b39c10642a0
 | 
			
		||||
[kubernetes-client-linux-arm64.tar.gz](https://dl.k8s.io/v1.19.13/kubernetes-client-linux-arm64.tar.gz) | fd5e073e4a823c143637230b950a1255f36d0f84bfb68a09bac2bf79cf58b2d7f61aa1ae507b21182cde13d32482ae8d76cae88b3ebfbd69a29d8485d80030d3
 | 
			
		||||
[kubernetes-client-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.19.13/kubernetes-client-linux-ppc64le.tar.gz) | 963c435ec3187447ba97769241f77f91a664b1260b4229471765f749b9f6fb796ac6eeb2026d67cc67506f02605c3d681fd6a80ecf94ff5000cf643881120606
 | 
			
		||||
[kubernetes-client-linux-s390x.tar.gz](https://dl.k8s.io/v1.19.13/kubernetes-client-linux-s390x.tar.gz) | e8f59759d22a616fb844f1ce06eb5420628a16129063cf0ef4d330d3b46cae8dd4147dac64becad26be59708e9c76f4ab8cc0c50e6a35cf7741fad358f719015
 | 
			
		||||
[kubernetes-client-windows-386.tar.gz](https://dl.k8s.io/v1.19.13/kubernetes-client-windows-386.tar.gz) | c7d44eb3237a5e958b59fc3de0edc12cb6ee9ae7606a095cd1eda834c09801c70d3d28bb0761754e5c367be1e376ea793d1d8f3a9dc067c7b7bd308c0f27c86a
 | 
			
		||||
[kubernetes-client-windows-amd64.tar.gz](https://dl.k8s.io/v1.19.13/kubernetes-client-windows-amd64.tar.gz) | ae5f5d45bc28b5cff13ede9943705889f42100585e1ec3b94591813d385d737c9635a6c21bec4485bbaa7a52c25330a53bccdaebe784923c28c4d5d6b5f51389
 | 
			
		||||
 | 
			
		||||
### Server Binaries
 | 
			
		||||
 | 
			
		||||
filename | sha512 hash
 | 
			
		||||
-------- | -----------
 | 
			
		||||
[kubernetes-server-linux-amd64.tar.gz](https://dl.k8s.io/v1.19.13/kubernetes-server-linux-amd64.tar.gz) | 2d357be4b62a399a20f3550295852d39f3975699711487d4af46626cc873c8c3cdba8503798fc355985c498b12a9804199a159a38d9aa1a123b72bfcf692ed08
 | 
			
		||||
[kubernetes-server-linux-arm.tar.gz](https://dl.k8s.io/v1.19.13/kubernetes-server-linux-arm.tar.gz) | fdde608397dc1f64b794759077aa4595a2b13a1787638bd1d0d9bb9efd1534b571e7635ccd7090ea3c9a6f7be0a4ba9152ae2666fa03ffaf350f6e81a58411c5
 | 
			
		||||
[kubernetes-server-linux-arm64.tar.gz](https://dl.k8s.io/v1.19.13/kubernetes-server-linux-arm64.tar.gz) | 2a4cae1c8a340beecdc2a61486e1da28a7ddac2d4c17cee20e53fcb8103715a516e2735e10bc5cfefe6a109e5d7898d32a508bef076d07249aed0ac1dd6a97d5
 | 
			
		||||
[kubernetes-server-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.19.13/kubernetes-server-linux-ppc64le.tar.gz) | 7011248d416686d9b5a9ffe8338cf83a450cae616d109bae82152a6dd1d601ccc4f79453851564c10a851f7f8847e2b3ab468c3a0c5649bd5548bc581da93f27
 | 
			
		||||
[kubernetes-server-linux-s390x.tar.gz](https://dl.k8s.io/v1.19.13/kubernetes-server-linux-s390x.tar.gz) | 3fdb9efa4f1bbfb1646e093624068b4e8cbd95797dbc95dd9c031114c6d290a8adeaf0821b78c5605908deb80aedc04d3bbd9f235f106d00c7476388c4413536
 | 
			
		||||
 | 
			
		||||
### Node Binaries
 | 
			
		||||
 | 
			
		||||
filename | sha512 hash
 | 
			
		||||
-------- | -----------
 | 
			
		||||
[kubernetes-node-linux-amd64.tar.gz](https://dl.k8s.io/v1.19.13/kubernetes-node-linux-amd64.tar.gz) | 48b1e18b04f4f92d022514db15bb3e443cd1524aa5e1d765e7f6bee8f5d3091117c05d4864d01d1562c268d5f75f7cacb9e56ff50c3ced888bbc73af2bf85217
 | 
			
		||||
[kubernetes-node-linux-arm.tar.gz](https://dl.k8s.io/v1.19.13/kubernetes-node-linux-arm.tar.gz) | f8bfe168792e1e64d45fa72ae935b3b4301674df9320537fe7b1225872c4cde3ad5394141fc4b2fa316b44a4d39dbca7066fe1eeea7dfc62feae7814d6c3fc6d
 | 
			
		||||
[kubernetes-node-linux-arm64.tar.gz](https://dl.k8s.io/v1.19.13/kubernetes-node-linux-arm64.tar.gz) | d7ae51d076ae73e2ad72a429ad154aebd2b6f969091edbb77dc0e78a7d5c55b5d78b8dab81fdc3d7eb86b96f423a53ef5c184e49fba8f3d000095e1767b885bb
 | 
			
		||||
[kubernetes-node-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.19.13/kubernetes-node-linux-ppc64le.tar.gz) | ba722cc18ff2216f651a0e4dac24c6a7e3150d273569c4dd84689183b73d8328ad335d77da4fcb0a406e2d25121676510a680ced78ec811cd20a6ac202eddf3c
 | 
			
		||||
[kubernetes-node-linux-s390x.tar.gz](https://dl.k8s.io/v1.19.13/kubernetes-node-linux-s390x.tar.gz) | ba4da20282c736a650165dec1a2751b67172d36d5deb35c964455590f536afce16119e4f5363a71fabf7ee73a1b168dd5ecd53ca966a5627871902977cf9d82e
 | 
			
		||||
[kubernetes-node-windows-amd64.tar.gz](https://dl.k8s.io/v1.19.13/kubernetes-node-windows-amd64.tar.gz) | 48f1d7c707c821a7c3ad013d7a887f338456aa4c96c1eb5dcbfc7eab335616f1ad08e4e751cb346db036ea17ff5fe0f5ff6260e2cc32c315e671dd4ef7597500
 | 
			
		||||
 | 
			
		||||
## Changelog since v1.19.12
 | 
			
		||||
 | 
			
		||||
## Changes by Kind
 | 
			
		||||
 | 
			
		||||
### Feature
 | 
			
		||||
 | 
			
		||||
- Kubernetes 1.19.x is now built using Go 1.15.14 ([#103705](https://github.com/kubernetes/kubernetes/pull/103705), [@puerco](https://github.com/puerco)) [SIG Cloud Provider, Instrumentation, Release and Testing]
 | 
			
		||||
- 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]
 | 
			
		||||
 | 
			
		||||
### Bug or Regression
 | 
			
		||||
 | 
			
		||||
- 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)) [SIG Scheduling]
 | 
			
		||||
- Fixes a `cannot convert int64 to float64` error seen using server-side apply with certain CRDs in 1.19.10+ ([#103105](https://github.com/kubernetes/kubernetes/pull/103105), [@liggitt](https://github.com/liggitt)) [SIG API Machinery]
 | 
			
		||||
- 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]
 | 
			
		||||
 | 
			
		||||
## Dependencies
 | 
			
		||||
 | 
			
		||||
### Added
 | 
			
		||||
_Nothing has changed._
 | 
			
		||||
 | 
			
		||||
### Changed
 | 
			
		||||
- sigs.k8s.io/structured-merge-diff/v4: v4.0.3 → v4.1.2
 | 
			
		||||
 | 
			
		||||
### Removed
 | 
			
		||||
_Nothing has changed._
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# v1.19.12
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -25,7 +25,6 @@ import (
 | 
			
		||||
 | 
			
		||||
	"k8s.io/api/core/v1"
 | 
			
		||||
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
			
		||||
	"k8s.io/apimachinery/pkg/fields"
 | 
			
		||||
	"k8s.io/apimachinery/pkg/runtime"
 | 
			
		||||
	"k8s.io/apimachinery/pkg/util/wait"
 | 
			
		||||
	"k8s.io/apimachinery/pkg/watch"
 | 
			
		||||
@@ -56,64 +55,6 @@ func scheduleFailureEvent(podName string) func(*v1.Event) bool {
 | 
			
		||||
// Action is a function to be performed by the system.
 | 
			
		||||
type Action func() error
 | 
			
		||||
 | 
			
		||||
// observeNodeUpdateAfterAction returns true if a node update matching the predicate was emitted
 | 
			
		||||
// from the system after performing the supplied action.
 | 
			
		||||
func observeNodeUpdateAfterAction(c clientset.Interface, nodeName string, nodePredicate func(*v1.Node) bool, action Action) (bool, error) {
 | 
			
		||||
	observedMatchingNode := false
 | 
			
		||||
	nodeSelector := fields.OneTermEqualSelector("metadata.name", nodeName)
 | 
			
		||||
	informerStartedChan := make(chan struct{})
 | 
			
		||||
	var informerStartedGuard sync.Once
 | 
			
		||||
 | 
			
		||||
	_, controller := cache.NewInformer(
 | 
			
		||||
		&cache.ListWatch{
 | 
			
		||||
			ListFunc: func(options metav1.ListOptions) (runtime.Object, error) {
 | 
			
		||||
				options.FieldSelector = nodeSelector.String()
 | 
			
		||||
				ls, err := c.CoreV1().Nodes().List(context.TODO(), options)
 | 
			
		||||
				return ls, err
 | 
			
		||||
			},
 | 
			
		||||
			WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {
 | 
			
		||||
				// Signal parent goroutine that watching has begun.
 | 
			
		||||
				defer informerStartedGuard.Do(func() { close(informerStartedChan) })
 | 
			
		||||
				options.FieldSelector = nodeSelector.String()
 | 
			
		||||
				w, err := c.CoreV1().Nodes().Watch(context.TODO(), options)
 | 
			
		||||
				return w, err
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
		&v1.Node{},
 | 
			
		||||
		0,
 | 
			
		||||
		cache.ResourceEventHandlerFuncs{
 | 
			
		||||
			UpdateFunc: func(oldObj, newObj interface{}) {
 | 
			
		||||
				n, ok := newObj.(*v1.Node)
 | 
			
		||||
				framework.ExpectEqual(ok, true)
 | 
			
		||||
				if nodePredicate(n) {
 | 
			
		||||
					observedMatchingNode = true
 | 
			
		||||
				}
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
	// Start the informer and block this goroutine waiting for the started signal.
 | 
			
		||||
	informerStopChan := make(chan struct{})
 | 
			
		||||
	defer func() { close(informerStopChan) }()
 | 
			
		||||
	go controller.Run(informerStopChan)
 | 
			
		||||
	<-informerStartedChan
 | 
			
		||||
 | 
			
		||||
	// Invoke the action function.
 | 
			
		||||
	err := action()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return false, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Poll whether the informer has found a matching node update with a timeout.
 | 
			
		||||
	// Wait up 2 minutes polling every second.
 | 
			
		||||
	timeout := 2 * time.Minute
 | 
			
		||||
	interval := 1 * time.Second
 | 
			
		||||
	err = wait.Poll(interval, timeout, func() (bool, error) {
 | 
			
		||||
		return observedMatchingNode, nil
 | 
			
		||||
	})
 | 
			
		||||
	return err == nil, err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// observeEventAfterAction returns true if an event matching the predicate was emitted
 | 
			
		||||
// from the system after performing the supplied action.
 | 
			
		||||
func observeEventAfterAction(c clientset.Interface, ns string, eventPredicate func(*v1.Event) bool, action Action) (bool, error) {
 | 
			
		||||
 
 | 
			
		||||
@@ -18,7 +18,6 @@ package scheduling
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"context"
 | 
			
		||||
	"encoding/json"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"math"
 | 
			
		||||
	"sync"
 | 
			
		||||
@@ -30,7 +29,6 @@ import (
 | 
			
		||||
	_ "github.com/stretchr/testify/assert"
 | 
			
		||||
 | 
			
		||||
	v1 "k8s.io/api/core/v1"
 | 
			
		||||
	apierrors "k8s.io/apimachinery/pkg/api/errors"
 | 
			
		||||
	"k8s.io/apimachinery/pkg/api/resource"
 | 
			
		||||
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
			
		||||
	"k8s.io/apimachinery/pkg/labels"
 | 
			
		||||
@@ -43,10 +41,8 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/test/e2e/framework"
 | 
			
		||||
	e2enode "k8s.io/kubernetes/test/e2e/framework/node"
 | 
			
		||||
	e2epod "k8s.io/kubernetes/test/e2e/framework/pod"
 | 
			
		||||
	e2erc "k8s.io/kubernetes/test/e2e/framework/rc"
 | 
			
		||||
	e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper"
 | 
			
		||||
	testutils "k8s.io/kubernetes/test/utils"
 | 
			
		||||
	imageutils "k8s.io/kubernetes/test/utils/image"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Resource is a collection of compute resource.
 | 
			
		||||
@@ -73,61 +69,6 @@ var podRequestedResource = &v1.ResourceRequirements{
 | 
			
		||||
	},
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// addOrUpdateAvoidPodOnNode adds avoidPods annotations to node, will override if it exists
 | 
			
		||||
func addOrUpdateAvoidPodOnNode(c clientset.Interface, nodeName string, avoidPods v1.AvoidPods) {
 | 
			
		||||
	err := wait.PollImmediate(framework.Poll, framework.SingleCallTimeout, func() (bool, error) {
 | 
			
		||||
		node, err := c.CoreV1().Nodes().Get(context.TODO(), nodeName, metav1.GetOptions{})
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return false, err
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		taintsData, err := json.Marshal(avoidPods)
 | 
			
		||||
		framework.ExpectNoError(err)
 | 
			
		||||
 | 
			
		||||
		if node.Annotations == nil {
 | 
			
		||||
			node.Annotations = make(map[string]string)
 | 
			
		||||
		}
 | 
			
		||||
		node.Annotations[v1.PreferAvoidPodsAnnotationKey] = string(taintsData)
 | 
			
		||||
		_, err = c.CoreV1().Nodes().Update(context.TODO(), node, metav1.UpdateOptions{})
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			if !apierrors.IsConflict(err) {
 | 
			
		||||
				framework.ExpectNoError(err)
 | 
			
		||||
			} else {
 | 
			
		||||
				framework.Logf("Conflict when trying to add/update avoidPods %v to %v with error %v", avoidPods, nodeName, err)
 | 
			
		||||
				return false, nil
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		return true, nil
 | 
			
		||||
	})
 | 
			
		||||
	framework.ExpectNoError(err)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// removeAvoidPodsOffNode removes AvoidPods annotations from the node. It does not fail if no such annotation exists.
 | 
			
		||||
func removeAvoidPodsOffNode(c clientset.Interface, nodeName string) {
 | 
			
		||||
	err := wait.PollImmediate(framework.Poll, framework.SingleCallTimeout, func() (bool, error) {
 | 
			
		||||
		node, err := c.CoreV1().Nodes().Get(context.TODO(), nodeName, metav1.GetOptions{})
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return false, err
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if node.Annotations == nil {
 | 
			
		||||
			return true, nil
 | 
			
		||||
		}
 | 
			
		||||
		delete(node.Annotations, v1.PreferAvoidPodsAnnotationKey)
 | 
			
		||||
		_, err = c.CoreV1().Nodes().Update(context.TODO(), node, metav1.UpdateOptions{})
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			if !apierrors.IsConflict(err) {
 | 
			
		||||
				framework.ExpectNoError(err)
 | 
			
		||||
			} else {
 | 
			
		||||
				framework.Logf("Conflict when trying to remove avoidPods to %v", nodeName)
 | 
			
		||||
				return false, nil
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		return true, nil
 | 
			
		||||
	})
 | 
			
		||||
	framework.ExpectNoError(err)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// nodesAreTooUtilized ensures that each node can support 2*crioMinMemLimit
 | 
			
		||||
// We check for double because it needs to support at least the cri-o minimum
 | 
			
		||||
// plus whatever delta between node usages (which could be up to or at least crioMinMemLimit)
 | 
			
		||||
@@ -262,70 +203,6 @@ var _ = SIGDescribe("SchedulerPriorities [Serial]", func() {
 | 
			
		||||
		framework.ExpectNotEqual(labelPod.Spec.NodeName, nodeName)
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	ginkgo.It("Pod should avoid nodes that have avoidPod annotation", func() {
 | 
			
		||||
		nodeName := nodeList.Items[0].Name
 | 
			
		||||
		// make the nodes have balanced cpu,mem usage
 | 
			
		||||
		cleanUp, err := createBalancedPodForNodes(f, cs, ns, nodeList.Items, podRequestedResource, 0.5)
 | 
			
		||||
		defer cleanUp()
 | 
			
		||||
		framework.ExpectNoError(err)
 | 
			
		||||
		ginkgo.By("Create a RC, with 0 replicas")
 | 
			
		||||
		rc := createRC(ns, "scheduler-priority-avoid-pod", int32(0), map[string]string{"name": "scheduler-priority-avoid-pod"}, f, podRequestedResource)
 | 
			
		||||
		// Cleanup the replication controller when we are done.
 | 
			
		||||
		defer func() {
 | 
			
		||||
			// Resize the replication controller to zero to get rid of pods.
 | 
			
		||||
			if err := e2erc.DeleteRCAndWaitForGC(f.ClientSet, f.Namespace.Name, rc.Name); err != nil {
 | 
			
		||||
				framework.Logf("Failed to cleanup replication controller %v: %v.", rc.Name, err)
 | 
			
		||||
			}
 | 
			
		||||
		}()
 | 
			
		||||
 | 
			
		||||
		ginkgo.By("Trying to apply avoidPod annotations on the first node.")
 | 
			
		||||
		avoidPod := v1.AvoidPods{
 | 
			
		||||
			PreferAvoidPods: []v1.PreferAvoidPodsEntry{
 | 
			
		||||
				{
 | 
			
		||||
					PodSignature: v1.PodSignature{
 | 
			
		||||
						PodController: &metav1.OwnerReference{
 | 
			
		||||
							APIVersion: "v1",
 | 
			
		||||
							Kind:       "ReplicationController",
 | 
			
		||||
							Name:       rc.Name,
 | 
			
		||||
							UID:        rc.UID,
 | 
			
		||||
							Controller: func() *bool { b := true; return &b }(),
 | 
			
		||||
						},
 | 
			
		||||
					},
 | 
			
		||||
					Reason:  "some reson",
 | 
			
		||||
					Message: "some message",
 | 
			
		||||
				},
 | 
			
		||||
			},
 | 
			
		||||
		}
 | 
			
		||||
		action := func() error {
 | 
			
		||||
			addOrUpdateAvoidPodOnNode(cs, nodeName, avoidPod)
 | 
			
		||||
			return nil
 | 
			
		||||
		}
 | 
			
		||||
		predicate := func(node *v1.Node) bool {
 | 
			
		||||
			val, err := json.Marshal(avoidPod)
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				return false
 | 
			
		||||
			}
 | 
			
		||||
			return node.Annotations[v1.PreferAvoidPodsAnnotationKey] == string(val)
 | 
			
		||||
		}
 | 
			
		||||
		success, err := observeNodeUpdateAfterAction(f.ClientSet, nodeName, predicate, action)
 | 
			
		||||
		framework.ExpectNoError(err)
 | 
			
		||||
		framework.ExpectEqual(success, true)
 | 
			
		||||
 | 
			
		||||
		defer removeAvoidPodsOffNode(cs, nodeName)
 | 
			
		||||
 | 
			
		||||
		ginkgo.By(fmt.Sprintf("Scale the RC: %s to len(nodeList.Item)-1 : %v.", rc.Name, len(nodeList.Items)-1))
 | 
			
		||||
 | 
			
		||||
		e2erc.ScaleRC(f.ClientSet, f.ScalesGetter, ns, rc.Name, uint(len(nodeList.Items)-1), true)
 | 
			
		||||
		testPods, err := cs.CoreV1().Pods(ns).List(context.TODO(), metav1.ListOptions{
 | 
			
		||||
			LabelSelector: "name=scheduler-priority-avoid-pod",
 | 
			
		||||
		})
 | 
			
		||||
		framework.ExpectNoError(err)
 | 
			
		||||
		ginkgo.By(fmt.Sprintf("Verify the pods should not scheduled to the node: %s", nodeName))
 | 
			
		||||
		for _, pod := range testPods.Items {
 | 
			
		||||
			framework.ExpectNotEqual(pod.Spec.NodeName, nodeName)
 | 
			
		||||
		}
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	ginkgo.It("Pod should be preferably scheduled to nodes pod can tolerate", func() {
 | 
			
		||||
		// make the nodes have balanced cpu,mem usage ratio
 | 
			
		||||
		cleanUp, err := createBalancedPodForNodes(f, cs, ns, nodeList.Items, podRequestedResource, 0.5)
 | 
			
		||||
@@ -664,38 +541,6 @@ func getNonZeroRequests(pod *v1.Pod) Resource {
 | 
			
		||||
	return result
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func createRC(ns, rsName string, replicas int32, rcPodLabels map[string]string, f *framework.Framework, resource *v1.ResourceRequirements) *v1.ReplicationController {
 | 
			
		||||
	rc := &v1.ReplicationController{
 | 
			
		||||
		TypeMeta: metav1.TypeMeta{
 | 
			
		||||
			Kind:       "ReplicationController",
 | 
			
		||||
			APIVersion: "v1",
 | 
			
		||||
		},
 | 
			
		||||
		ObjectMeta: metav1.ObjectMeta{
 | 
			
		||||
			Name: rsName,
 | 
			
		||||
		},
 | 
			
		||||
		Spec: v1.ReplicationControllerSpec{
 | 
			
		||||
			Replicas: &replicas,
 | 
			
		||||
			Template: &v1.PodTemplateSpec{
 | 
			
		||||
				ObjectMeta: metav1.ObjectMeta{
 | 
			
		||||
					Labels: rcPodLabels,
 | 
			
		||||
				},
 | 
			
		||||
				Spec: v1.PodSpec{
 | 
			
		||||
					Containers: []v1.Container{
 | 
			
		||||
						{
 | 
			
		||||
							Name:      rsName,
 | 
			
		||||
							Image:     imageutils.GetPauseImageName(),
 | 
			
		||||
							Resources: *resource,
 | 
			
		||||
						},
 | 
			
		||||
					},
 | 
			
		||||
				},
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
	rc, err := f.ClientSet.CoreV1().ReplicationControllers(ns).Create(context.TODO(), rc, metav1.CreateOptions{})
 | 
			
		||||
	framework.ExpectNoError(err)
 | 
			
		||||
	return rc
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func getRandomTaint() v1.Taint {
 | 
			
		||||
	return v1.Taint{
 | 
			
		||||
		Key:    fmt.Sprintf("kubernetes.io/e2e-scheduling-priorities-%s", string(uuid.NewUUID()[:23])),
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user