diff --git a/content/en/docs/reference/_index.md b/content/en/docs/reference/_index.md
index 5be7d4c4b8..a708d75634 100644
--- a/content/en/docs/reference/_index.md
+++ b/content/en/docs/reference/_index.md
@@ -79,7 +79,6 @@ operator to use or manage a cluster.
 * [kube-apiserver configuration (v1alpha1)](/docs/reference/config-api/apiserver-config.v1alpha1/) and
 * [kube-apiserver configuration (v1beta1)](/docs/reference/config-api/apiserver-config.v1beta1/) and
   [kube-apiserver configuration (v1)](/docs/reference/config-api/apiserver-config.v1/)
-* [kube-apiserver encryption (v1)](/docs/reference/config-api/apiserver-encryption.v1/)
 * [kube-apiserver event rate limit (v1alpha1)](/docs/reference/config-api/apiserver-eventratelimit.v1alpha1/)
 * [kubelet configuration (v1alpha1)](/docs/reference/config-api/kubelet-config.v1alpha1/) and
   [kubelet configuration (v1beta1)](/docs/reference/config-api/kubelet-config.v1beta1/)
diff --git a/content/en/docs/reference/config-api/apiserver-admission.v1.md b/content/en/docs/reference/config-api/apiserver-admission.v1.md
index 3deb8521b7..62e8c0f62d 100644
--- a/content/en/docs/reference/config-api/apiserver-admission.v1.md
+++ b/content/en/docs/reference/config-api/apiserver-admission.v1.md
@@ -152,7 +152,7 @@ requested. e.g. a patch can result in either a CREATE or UPDATE Operation.</p>
 </td>
 </tr>
 <tr><td><code>userInfo</code> <B>[Required]</B><br/>
-<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#userinfo-v1-authentication-k8s-io"><code>authentication/v1.UserInfo</code></a>
+<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#userinfo-v1-authentication-k8s-io"><code>authentication/v1.UserInfo</code></a>
 </td>
 <td>
    <p>UserInfo is information about the requesting user</p>
@@ -226,7 +226,7 @@ This must be copied over from the corresponding AdmissionRequest.</p>
 </td>
 </tr>
 <tr><td><code>status</code><br/>
-<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#status-v1-meta"><code>meta/v1.Status</code></a>
+<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#status-v1-meta"><code>meta/v1.Status</code></a>
 </td>
 <td>
    <p>Result contains extra details into why an admission request was denied.
diff --git a/content/en/docs/reference/config-api/apiserver-audit.v1.md b/content/en/docs/reference/config-api/apiserver-audit.v1.md
index 7f9314292b..ec070999ae 100644
--- a/content/en/docs/reference/config-api/apiserver-audit.v1.md
+++ b/content/en/docs/reference/config-api/apiserver-audit.v1.md
@@ -71,14 +71,14 @@ For non-resource requests, this is the lower-cased HTTP method.</p>
 </td>
 </tr>
 <tr><td><code>user</code> <B>[Required]</B><br/>
-<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#userinfo-v1-authentication-k8s-io"><code>authentication/v1.UserInfo</code></a>
+<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#userinfo-v1-authentication-k8s-io"><code>authentication/v1.UserInfo</code></a>
 </td>
 <td>
    <p>Authenticated user information.</p>
 </td>
 </tr>
 <tr><td><code>impersonatedUser</code><br/>
-<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#userinfo-v1-authentication-k8s-io"><code>authentication/v1.UserInfo</code></a>
+<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#userinfo-v1-authentication-k8s-io"><code>authentication/v1.UserInfo</code></a>
 </td>
 <td>
    <p>Impersonated user information.</p>
@@ -116,7 +116,7 @@ Does not apply for List-type requests, or non-resource requests.</p>
 </td>
 </tr>
 <tr><td><code>responseStatus</code><br/>
-<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#status-v1-meta"><code>meta/v1.Status</code></a>
+<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#status-v1-meta"><code>meta/v1.Status</code></a>
 </td>
 <td>
    <p>The response status, populated even when the ResponseObject is not a Status type.
@@ -144,14 +144,14 @@ at Response Level.</p>
 </td>
 </tr>
 <tr><td><code>requestReceivedTimestamp</code><br/>
-<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#microtime-v1-meta"><code>meta/v1.MicroTime</code></a>
+<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#microtime-v1-meta"><code>meta/v1.MicroTime</code></a>
 </td>
 <td>
    <p>Time the request reached the apiserver.</p>
 </td>
 </tr>
 <tr><td><code>stageTimestamp</code><br/>
-<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#microtime-v1-meta"><code>meta/v1.MicroTime</code></a>
+<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#microtime-v1-meta"><code>meta/v1.MicroTime</code></a>
 </td>
 <td>
    <p>Time the request reached current audit stage.</p>
@@ -188,7 +188,7 @@ should be short. Annotations are included in the Metadata level.</p>
     
   
 <tr><td><code>metadata</code><br/>
-<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#listmeta-v1-meta"><code>meta/v1.ListMeta</code></a>
+<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#listmeta-v1-meta"><code>meta/v1.ListMeta</code></a>
 </td>
 <td>
    <span class="text-muted">No description provided.</span></td>
@@ -223,7 +223,7 @@ categories are logged.</p>
     
   
 <tr><td><code>metadata</code><br/>
-<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#objectmeta-v1-meta"><code>meta/v1.ObjectMeta</code></a>
+<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#objectmeta-v1-meta"><code>meta/v1.ObjectMeta</code></a>
 </td>
 <td>
    <p>ObjectMeta is included for interoperability with API infrastructure.</p>
@@ -278,7 +278,7 @@ in a rule will override the global default.</p>
     
   
 <tr><td><code>metadata</code><br/>
-<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#listmeta-v1-meta"><code>meta/v1.ListMeta</code></a>
+<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#listmeta-v1-meta"><code>meta/v1.ListMeta</code></a>
 </td>
 <td>
    <span class="text-muted">No description provided.</span></td>
diff --git a/content/en/docs/reference/config-api/apiserver-config.v1.md b/content/en/docs/reference/config-api/apiserver-config.v1.md
index c133724ec7..6653a2d72a 100644
--- a/content/en/docs/reference/config-api/apiserver-config.v1.md
+++ b/content/en/docs/reference/config-api/apiserver-config.v1.md
@@ -11,6 +11,7 @@ auto_generated: true
 
 
 - [AdmissionConfiguration](#apiserver-config-k8s-io-v1-AdmissionConfiguration)
+- [EncryptionConfiguration](#apiserver-config-k8s-io-v1-EncryptionConfiguration)
   
 
 ## `AdmissionConfiguration`     {#apiserver-config-k8s-io-v1-AdmissionConfiguration}
@@ -38,6 +39,96 @@ auto_generated: true
 </tbody>
 </table>
 
+## `EncryptionConfiguration`     {#apiserver-config-k8s-io-v1-EncryptionConfiguration}
+    
+
+
+<p>EncryptionConfiguration stores the complete configuration for encryption providers.
+It also allows the use of wildcards to specify the resources that should be encrypted.
+Use '<em>.<!-- raw HTML omitted -->' to encrypt all resources within a group or '</em>.<em>' to encrypt all resources.
+'</em>.' can be used to encrypt all resource in the core group.  '<em>.</em>' will encrypt all
+resources, even custom resources that are added after API server start.
+Use of wildcards that overlap within the same resource list or across multiple
+entries are not allowed since part of the configuration would be ineffective.
+Resource lists are processed in order, with earlier lists taking precedence.</p>
+<p>Example:</p>
+<pre><code>kind: EncryptionConfiguration
+apiVersion: apiserver.config.k8s.io/v1
+resources:
+- resources:
+  - events
+  providers:
+  - identity: {}  # do not encrypt events even though *.* is specified below
+- resources:
+  - secrets
+  - configmaps
+  - pandas.awesome.bears.example
+  providers:
+  - aescbc:
+      keys:
+      - name: key1
+        secret: c2VjcmV0IGlzIHNlY3VyZQ==
+- resources:
+  - '*.apps'
+  providers:
+  - aescbc:
+      keys:
+      - name: key2
+        secret: c2VjcmV0IGlzIHNlY3VyZSwgb3IgaXMgaXQ/Cg==
+- resources:
+  - '*.*'
+  providers:
+  - aescbc:
+      keys:
+      - name: key3
+        secret: c2VjcmV0IGlzIHNlY3VyZSwgSSB0aGluaw==</code></pre>
+
+
+<table class="table">
+<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
+<tbody>
+    
+<tr><td><code>apiVersion</code><br/>string</td><td><code>apiserver.config.k8s.io/v1</code></td></tr>
+<tr><td><code>kind</code><br/>string</td><td><code>EncryptionConfiguration</code></td></tr>
+    
+  
+<tr><td><code>resources</code> <B>[Required]</B><br/>
+<a href="#apiserver-config-k8s-io-v1-ResourceConfiguration"><code>[]ResourceConfiguration</code></a>
+</td>
+<td>
+   <p>resources is a list containing resources, and their corresponding encryption providers.</p>
+</td>
+</tr>
+</tbody>
+</table>
+
+## `AESConfiguration`     {#apiserver-config-k8s-io-v1-AESConfiguration}
+    
+
+**Appears in:**
+
+- [ProviderConfiguration](#apiserver-config-k8s-io-v1-ProviderConfiguration)
+
+
+<p>AESConfiguration contains the API configuration for an AES transformer.</p>
+
+
+<table class="table">
+<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
+<tbody>
+    
+  
+<tr><td><code>keys</code> <B>[Required]</B><br/>
+<a href="#apiserver-config-k8s-io-v1-Key"><code>[]Key</code></a>
+</td>
+<td>
+   <p>keys is a list of keys to be used for creating the AES transformer.
+Each key has to be 32 bytes long for AES-CBC and 16, 24 or 32 bytes for AES-GCM.</p>
+</td>
+</tr>
+</tbody>
+</table>
+
 ## `AdmissionPluginConfiguration`     {#apiserver-config-k8s-io-v1-AdmissionPluginConfiguration}
     
 
@@ -80,4 +171,226 @@ configuration. If present, it will be used instead of the path to the configurat
 </tr>
 </tbody>
 </table>
+
+## `IdentityConfiguration`     {#apiserver-config-k8s-io-v1-IdentityConfiguration}
+    
+
+**Appears in:**
+
+- [ProviderConfiguration](#apiserver-config-k8s-io-v1-ProviderConfiguration)
+
+
+<p>IdentityConfiguration is an empty struct to allow identity transformer in provider configuration.</p>
+
+
+
+
+## `KMSConfiguration`     {#apiserver-config-k8s-io-v1-KMSConfiguration}
+    
+
+**Appears in:**
+
+- [ProviderConfiguration](#apiserver-config-k8s-io-v1-ProviderConfiguration)
+
+
+<p>KMSConfiguration contains the name, cache size and path to configuration file for a KMS based envelope transformer.</p>
+
+
+<table class="table">
+<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
+<tbody>
+    
+  
+<tr><td><code>apiVersion</code><br/>
+<code>string</code>
+</td>
+<td>
+   <p>apiVersion of KeyManagementService</p>
+</td>
+</tr>
+<tr><td><code>name</code> <B>[Required]</B><br/>
+<code>string</code>
+</td>
+<td>
+   <p>name is the name of the KMS plugin to be used.</p>
+</td>
+</tr>
+<tr><td><code>cachesize</code><br/>
+<code>int32</code>
+</td>
+<td>
+   <p>cachesize is the maximum number of secrets which are cached in memory. The default value is 1000.
+Set to a negative value to disable caching. This field is only allowed for KMS v1 providers.</p>
+</td>
+</tr>
+<tr><td><code>endpoint</code> <B>[Required]</B><br/>
+<code>string</code>
+</td>
+<td>
+   <p>endpoint is the gRPC server listening address, for example &quot;unix:///var/run/kms-provider.sock&quot;.</p>
+</td>
+</tr>
+<tr><td><code>timeout</code><br/>
+<a href="https://pkg.go.dev/k8s.io/apimachinery/pkg/apis/meta/v1#Duration"><code>meta/v1.Duration</code></a>
+</td>
+<td>
+   <p>timeout for gRPC calls to kms-plugin (ex. 5s). The default is 3 seconds.</p>
+</td>
+</tr>
+</tbody>
+</table>
+
+## `Key`     {#apiserver-config-k8s-io-v1-Key}
+    
+
+**Appears in:**
+
+- [AESConfiguration](#apiserver-config-k8s-io-v1-AESConfiguration)
+
+- [SecretboxConfiguration](#apiserver-config-k8s-io-v1-SecretboxConfiguration)
+
+
+<p>Key contains name and secret of the provided key for a transformer.</p>
+
+
+<table class="table">
+<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
+<tbody>
+    
+  
+<tr><td><code>name</code> <B>[Required]</B><br/>
+<code>string</code>
+</td>
+<td>
+   <p>name is the name of the key to be used while storing data to disk.</p>
+</td>
+</tr>
+<tr><td><code>secret</code> <B>[Required]</B><br/>
+<code>string</code>
+</td>
+<td>
+   <p>secret is the actual key, encoded in base64.</p>
+</td>
+</tr>
+</tbody>
+</table>
+
+## `ProviderConfiguration`     {#apiserver-config-k8s-io-v1-ProviderConfiguration}
+    
+
+**Appears in:**
+
+- [ResourceConfiguration](#apiserver-config-k8s-io-v1-ResourceConfiguration)
+
+
+<p>ProviderConfiguration stores the provided configuration for an encryption provider.</p>
+
+
+<table class="table">
+<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
+<tbody>
+    
+  
+<tr><td><code>aesgcm</code> <B>[Required]</B><br/>
+<a href="#apiserver-config-k8s-io-v1-AESConfiguration"><code>AESConfiguration</code></a>
+</td>
+<td>
+   <p>aesgcm is the configuration for the AES-GCM transformer.</p>
+</td>
+</tr>
+<tr><td><code>aescbc</code> <B>[Required]</B><br/>
+<a href="#apiserver-config-k8s-io-v1-AESConfiguration"><code>AESConfiguration</code></a>
+</td>
+<td>
+   <p>aescbc is the configuration for the AES-CBC transformer.</p>
+</td>
+</tr>
+<tr><td><code>secretbox</code> <B>[Required]</B><br/>
+<a href="#apiserver-config-k8s-io-v1-SecretboxConfiguration"><code>SecretboxConfiguration</code></a>
+</td>
+<td>
+   <p>secretbox is the configuration for the Secretbox based transformer.</p>
+</td>
+</tr>
+<tr><td><code>identity</code> <B>[Required]</B><br/>
+<a href="#apiserver-config-k8s-io-v1-IdentityConfiguration"><code>IdentityConfiguration</code></a>
+</td>
+<td>
+   <p>identity is the (empty) configuration for the identity transformer.</p>
+</td>
+</tr>
+<tr><td><code>kms</code> <B>[Required]</B><br/>
+<a href="#apiserver-config-k8s-io-v1-KMSConfiguration"><code>KMSConfiguration</code></a>
+</td>
+<td>
+   <p>kms contains the name, cache size and path to configuration file for a KMS based envelope transformer.</p>
+</td>
+</tr>
+</tbody>
+</table>
+
+## `ResourceConfiguration`     {#apiserver-config-k8s-io-v1-ResourceConfiguration}
+    
+
+**Appears in:**
+
+- [EncryptionConfiguration](#apiserver-config-k8s-io-v1-EncryptionConfiguration)
+
+
+<p>ResourceConfiguration stores per resource configuration.</p>
+
+
+<table class="table">
+<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
+<tbody>
+    
+  
+<tr><td><code>resources</code> <B>[Required]</B><br/>
+<code>[]string</code>
+</td>
+<td>
+   <p>resources is a list of kubernetes resources which have to be encrypted. The resource names are derived from <code>resource</code> or <code>resource.group</code> of the group/version/resource.
+eg: pandas.awesome.bears.example is a custom resource with 'group': awesome.bears.example, 'resource': pandas.
+Use '<em>.</em>' to encrypt all resources and '<em>.<!-- raw HTML omitted -->' to encrypt all resources in a specific group.
+eg: '</em>.awesome.bears.example' will encrypt all resources in the group 'awesome.bears.example'.
+eg: '*.' will encrypt all resources in the core group (such as pods, configmaps, etc).</p>
+</td>
+</tr>
+<tr><td><code>providers</code> <B>[Required]</B><br/>
+<a href="#apiserver-config-k8s-io-v1-ProviderConfiguration"><code>[]ProviderConfiguration</code></a>
+</td>
+<td>
+   <p>providers is a list of transformers to be used for reading and writing the resources to disk.
+eg: aesgcm, aescbc, secretbox, identity, kms.</p>
+</td>
+</tr>
+</tbody>
+</table>
+
+## `SecretboxConfiguration`     {#apiserver-config-k8s-io-v1-SecretboxConfiguration}
+    
+
+**Appears in:**
+
+- [ProviderConfiguration](#apiserver-config-k8s-io-v1-ProviderConfiguration)
+
+
+<p>SecretboxConfiguration contains the API configuration for an Secretbox transformer.</p>
+
+
+<table class="table">
+<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
+<tbody>
+    
+  
+<tr><td><code>keys</code> <B>[Required]</B><br/>
+<a href="#apiserver-config-k8s-io-v1-Key"><code>[]Key</code></a>
+</td>
+<td>
+   <p>keys is a list of keys to be used for creating the Secretbox transformer.
+Each key has to be 32 bytes long.</p>
+</td>
+</tr>
+</tbody>
+</table>
   
\ No newline at end of file
diff --git a/content/en/docs/reference/config-api/apiserver-config.v1alpha1.md b/content/en/docs/reference/config-api/apiserver-config.v1alpha1.md
index 4207670760..11986c4099 100644
--- a/content/en/docs/reference/config-api/apiserver-config.v1alpha1.md
+++ b/content/en/docs/reference/config-api/apiserver-config.v1alpha1.md
@@ -114,6 +114,13 @@ The specific position of JWT authenticators in relation to other
 authenticators is neither defined nor stable across releases.  Since
 each JWT authenticator must have a unique issuer URL, at most one
 JWT authenticator will attempt to cryptographically validate the token.</p>
+<p>The minimum valid JWT payload must contain the following claims:
+{
+&quot;iss&quot;: &quot;https://issuer.example.com&quot;,
+&quot;aud&quot;: [&quot;audience&quot;],
+&quot;exp&quot;: 1234567890,
+&quot;<!-- raw HTML omitted -->&quot;: &quot;username&quot;
+}</p>
 </td>
 </tr>
 </tbody>
@@ -238,6 +245,20 @@ configuration. If present, it will be used instead of the path to the configurat
 </tbody>
 </table>
 
+## `AudienceMatchPolicyType`     {#apiserver-k8s-io-v1alpha1-AudienceMatchPolicyType}
+    
+(Alias of `string`)
+
+**Appears in:**
+
+- [Issuer](#apiserver-k8s-io-v1alpha1-Issuer)
+
+
+<p>AudienceMatchPolicyType is a set of valid values for issuer.audienceMatchPolicy</p>
+
+
+
+
 ## `AuthorizerConfiguration`     {#apiserver-k8s-io-v1alpha1-AuthorizerConfiguration}
     
 
@@ -308,7 +329,11 @@ Must not be defined when Type!=Webhook</p>
    <p>username represents an option for the username attribute.
 The claim's value must be a singular string.
 Same as the --oidc-username-claim and --oidc-username-prefix flags.
-If username.expression is set, the expression must produce a string value.</p>
+If username.expression is set, the expression must produce a string value.
+If username.expression uses 'claims.email', then 'claims.email_verified' must be used in
+username.expression or extra[<em>].valueExpression or claimValidationRules[</em>].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)'.</p>
 <p>In the flag based approach, the --oidc-username-claim and --oidc-username-prefix are optional. If --oidc-username-claim is not set,
 the default value is &quot;sub&quot;. For the authentication config, there is no defaulting for claim or prefix. The claim and prefix must be set explicitly.
 For claim, if --oidc-username-claim was not set with legacy flag approach, configure username.claim=&quot;sub&quot; in the authentication config.
@@ -406,7 +431,7 @@ Mutually exclusive with expression.</p>
 <ul>
 <li>'claims' is a map of claim names to claim values.
 For example, a variable named 'sub' can be accessed as 'claims.sub'.
-Nested claims can be accessed using dot notation, e.g. 'claims.email.verified'.</li>
+Nested claims can be accessed using dot notation, e.g. 'claims.foo.bar'.</li>
 </ul>
 <p>Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/</p>
 <p>Mutually exclusive with claim.</p>
@@ -462,7 +487,7 @@ Must produce a boolean.</p>
 <ul>
 <li>'claims' is a map of claim names to claim values.
 For example, a variable named 'sub' can be accessed as 'claims.sub'.
-Nested claims can be accessed using dot notation, e.g. 'claims.email.verified'.
+Nested claims can be accessed using dot notation, e.g. 'claims.foo.bar'.
 Must return true for the validation to pass.</li>
 </ul>
 <p>Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/</p>
@@ -574,7 +599,8 @@ The &quot;master&quot; egress selector is deprecated in favor of &quot;controlpl
 key must be a domain-prefix path (e.g. example.org/foo). All characters before the first &quot;/&quot; must be a valid
 subdomain as defined by RFC 1123. All characters trailing the first &quot;/&quot; must
 be valid HTTP Path characters as defined by RFC 3986.
-key must be lowercase.</p>
+key must be lowercase.
+Required to be unique.</p>
 </td>
 </tr>
 <tr><td><code>valueExpression</code> <B>[Required]</B><br/>
@@ -589,7 +615,7 @@ Empty string values contained within a string array are filtered out.</p>
 <ul>
 <li>'claims' is a map of claim names to claim values.
 For example, a variable named 'sub' can be accessed as 'claims.sub'.
-Nested claims can be accessed using dot notation, e.g. 'claims.email.verified'.</li>
+Nested claims can be accessed using dot notation, e.g. 'claims.foo.bar'.</li>
 </ul>
 <p>Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/</p>
 </td>
@@ -605,7 +631,7 @@ Nested claims can be accessed using dot notation, e.g. 'claims.email.verified'.<
 - [JWTAuthenticator](#apiserver-k8s-io-v1alpha1-JWTAuthenticator)
 
 
-<p>Issuer provides the configuration for a external provider specific settings.</p>
+<p>Issuer provides the configuration for an external provider's specific settings.</p>
 
 
 <table class="table">
@@ -620,8 +646,35 @@ Nested claims can be accessed using dot notation, e.g. 'claims.email.verified'.<
    <p>url points to the issuer URL in a format https://url or https://url/path.
 This must match the &quot;iss&quot; claim in the presented JWT, and the issuer returned from discovery.
 Same value as the --oidc-issuer-url flag.
-Used to fetch discovery information unless overridden by discoveryURL.
-Required to be unique.
+Discovery information is fetched from &quot;{url}/.well-known/openid-configuration&quot; unless overridden by discoveryURL.
+Required to be unique across all JWT authenticators.
+Note that egress selection configuration is not used for this network connection.</p>
+</td>
+</tr>
+<tr><td><code>discoveryURL</code><br/>
+<code>string</code>
+</td>
+<td>
+   <p>discoveryURL, if specified, overrides the URL used to fetch discovery
+information instead of using &quot;{url}/.well-known/openid-configuration&quot;.
+The exact value specified is used, so &quot;/.well-known/openid-configuration&quot;
+must be included in discoveryURL if needed.</p>
+<p>The &quot;issuer&quot; field in the fetched discovery information must match the &quot;issuer.url&quot; field
+in the AuthenticationConfiguration and will be used to validate the &quot;iss&quot; claim in the presented JWT.
+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).</p>
+<p>Example:
+A discovery url that is exposed using kubernetes service 'oidc' in namespace 'oidc-namespace'
+and discovery information is available at '/.well-known/openid-configuration'.
+discoveryURL: &quot;https://oidc.oidc-namespace/.well-known/openid-configuration&quot;
+certificateAuthority is used to verify the TLS connection and the hostname on the leaf certificate
+must be set to 'oidc.oidc-namespace'.</p>
+<p>curl https://oidc.oidc-namespace/.well-known/openid-configuration (.discoveryURL field)
+{
+issuer: &quot;https://oidc.example.com&quot; (.url field)
+}</p>
+<p>discoveryURL must be different from url.
+Required to be unique across all JWT authenticators.
 Note that egress selection configuration is not used for this network connection.</p>
 </td>
 </tr>
@@ -645,6 +698,29 @@ Same value as the --oidc-client-id flag (though this field supports an array).
 Required to be non-empty.</p>
 </td>
 </tr>
+<tr><td><code>audienceMatchPolicy</code><br/>
+<a href="#apiserver-k8s-io-v1alpha1-AudienceMatchPolicyType"><code>AudienceMatchPolicyType</code></a>
+</td>
+<td>
+   <p>audienceMatchPolicy defines how the &quot;audiences&quot; field is used to match the &quot;aud&quot; claim in the presented JWT.
+Allowed values are:</p>
+<ol>
+<li>&quot;MatchAny&quot; when multiple audiences are specified and</li>
+<li>empty (or unset) or &quot;MatchAny&quot; when a single audience is specified.</li>
+</ol>
+<ul>
+<li>
+<p>MatchAny: the &quot;aud&quot; claim in the presented JWT must match at least one of the entries in the &quot;audiences&quot; field.
+For example, if &quot;audiences&quot; is [&quot;foo&quot;, &quot;bar&quot;], the &quot;aud&quot; claim in the presented JWT must contain either &quot;foo&quot; or &quot;bar&quot; (and may contain both).</p>
+</li>
+<li>
+<p>&quot;&quot;: The match policy can be empty (or unset) when a single audience is specified in the &quot;audiences&quot; field. The &quot;aud&quot; claim in the presented JWT must contain the single audience (and may contain others).</p>
+</li>
+</ul>
+<p>For more nuanced audience validation, use claimValidationRules.
+example: claimValidationRule[].expression: 'sets.equivalent(claims.aud, [&quot;bar&quot;, &quot;foo&quot;, &quot;baz&quot;])' to require an exact match.</p>
+</td>
+</tr>
 </tbody>
 </table>
 
@@ -740,7 +816,7 @@ Mutually exclusive with expression.</p>
 <ul>
 <li>'claims' is a map of claim names to claim values.
 For example, a variable named 'sub' can be accessed as 'claims.sub'.
-Nested claims can be accessed using dot notation, e.g. 'claims.email.verified'.</li>
+Nested claims can be accessed using dot notation, e.g. 'claims.foo.bar'.</li>
 </ul>
 <p>Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/</p>
 <p>Mutually exclusive with claim and prefix.</p>
diff --git a/content/en/docs/reference/config-api/apiserver-config.v1beta1.md b/content/en/docs/reference/config-api/apiserver-config.v1beta1.md
index 06dfaab722..2709684462 100644
--- a/content/en/docs/reference/config-api/apiserver-config.v1beta1.md
+++ b/content/en/docs/reference/config-api/apiserver-config.v1beta1.md
@@ -10,6 +10,8 @@ auto_generated: true
 ## Resource Types 
 
 
+- [AuthenticationConfiguration](#apiserver-k8s-io-v1beta1-AuthenticationConfiguration)
+- [AuthorizationConfiguration](#apiserver-k8s-io-v1beta1-AuthorizationConfiguration)
 - [EgressSelectorConfiguration](#apiserver-k8s-io-v1beta1-EgressSelectorConfiguration)
 - [TracingConfiguration](#apiserver-k8s-io-v1beta1-TracingConfiguration)
   
@@ -58,6 +60,74 @@ rate, but otherwise never samples.</p>
 </table>
   
 
+## `AuthenticationConfiguration`     {#apiserver-k8s-io-v1beta1-AuthenticationConfiguration}
+    
+
+
+<p>AuthenticationConfiguration provides versioned configuration for authentication.</p>
+
+
+<table class="table">
+<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
+<tbody>
+    
+<tr><td><code>apiVersion</code><br/>string</td><td><code>apiserver.k8s.io/v1beta1</code></td></tr>
+<tr><td><code>kind</code><br/>string</td><td><code>AuthenticationConfiguration</code></td></tr>
+    
+  
+<tr><td><code>jwt</code> <B>[Required]</B><br/>
+<a href="#apiserver-k8s-io-v1beta1-JWTAuthenticator"><code>[]JWTAuthenticator</code></a>
+</td>
+<td>
+   <p>jwt is a list of authenticator to authenticate Kubernetes users using
+JWT compliant tokens. The authenticator will attempt to parse a raw ID token,
+verify it's been signed by the configured issuer. The public key to verify the
+signature is discovered from the issuer's public endpoint using OIDC discovery.
+For an incoming token, each JWT authenticator will be attempted in
+the order in which it is specified in this list.  Note however that
+other authenticators may run before or after the JWT authenticators.
+The specific position of JWT authenticators in relation to other
+authenticators is neither defined nor stable across releases.  Since
+each JWT authenticator must have a unique issuer URL, at most one
+JWT authenticator will attempt to cryptographically validate the token.</p>
+<p>The minimum valid JWT payload must contain the following claims:
+{
+&quot;iss&quot;: &quot;https://issuer.example.com&quot;,
+&quot;aud&quot;: [&quot;audience&quot;],
+&quot;exp&quot;: 1234567890,
+&quot;<!-- raw HTML omitted -->&quot;: &quot;username&quot;
+}</p>
+</td>
+</tr>
+</tbody>
+</table>
+
+## `AuthorizationConfiguration`     {#apiserver-k8s-io-v1beta1-AuthorizationConfiguration}
+    
+
+
+
+<table class="table">
+<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
+<tbody>
+    
+<tr><td><code>apiVersion</code><br/>string</td><td><code>apiserver.k8s.io/v1beta1</code></td></tr>
+<tr><td><code>kind</code><br/>string</td><td><code>AuthorizationConfiguration</code></td></tr>
+    
+  
+<tr><td><code>authorizers</code> <B>[Required]</B><br/>
+<a href="#apiserver-k8s-io-v1beta1-AuthorizerConfiguration"><code>[]AuthorizerConfiguration</code></a>
+</td>
+<td>
+   <p>Authorizers is an ordered list of authorizers to
+authorize requests against.
+This is similar to the --authorization-modes kube-apiserver flag
+Must be at least one.</p>
+</td>
+</tr>
+</tbody>
+</table>
+
 ## `EgressSelectorConfiguration`     {#apiserver-k8s-io-v1beta1-EgressSelectorConfiguration}
     
 
@@ -108,6 +178,267 @@ rate, but otherwise never samples.</p>
 </tbody>
 </table>
 
+## `AudienceMatchPolicyType`     {#apiserver-k8s-io-v1beta1-AudienceMatchPolicyType}
+    
+(Alias of `string`)
+
+**Appears in:**
+
+- [Issuer](#apiserver-k8s-io-v1beta1-Issuer)
+
+
+<p>AudienceMatchPolicyType is a set of valid values for issuer.audienceMatchPolicy</p>
+
+
+
+
+## `AuthorizerConfiguration`     {#apiserver-k8s-io-v1beta1-AuthorizerConfiguration}
+    
+
+**Appears in:**
+
+- [AuthorizationConfiguration](#apiserver-k8s-io-v1beta1-AuthorizationConfiguration)
+
+
+
+<table class="table">
+<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
+<tbody>
+    
+  
+<tr><td><code>type</code> <B>[Required]</B><br/>
+<code>string</code>
+</td>
+<td>
+   <p>Type refers to the type of the authorizer
+&quot;Webhook&quot; is supported in the generic API server
+Other API servers may support additional authorizer
+types like Node, RBAC, ABAC, etc.</p>
+</td>
+</tr>
+<tr><td><code>name</code> <B>[Required]</B><br/>
+<code>string</code>
+</td>
+<td>
+   <p>Name used to describe the webhook
+This is explicitly used in monitoring machinery for metrics
+Note: Names must be DNS1123 labels like <code>myauthorizername</code> or
+subdomains like <code>myauthorizer.example.domain</code>
+Required, with no default</p>
+</td>
+</tr>
+<tr><td><code>webhook</code> <B>[Required]</B><br/>
+<a href="#apiserver-k8s-io-v1beta1-WebhookConfiguration"><code>WebhookConfiguration</code></a>
+</td>
+<td>
+   <p>Webhook defines the configuration for a Webhook authorizer
+Must be defined when Type=Webhook
+Must not be defined when Type!=Webhook</p>
+</td>
+</tr>
+</tbody>
+</table>
+
+## `ClaimMappings`     {#apiserver-k8s-io-v1beta1-ClaimMappings}
+    
+
+**Appears in:**
+
+- [JWTAuthenticator](#apiserver-k8s-io-v1beta1-JWTAuthenticator)
+
+
+<p>ClaimMappings provides the configuration for claim mapping</p>
+
+
+<table class="table">
+<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
+<tbody>
+    
+  
+<tr><td><code>username</code> <B>[Required]</B><br/>
+<a href="#apiserver-k8s-io-v1beta1-PrefixedClaimOrExpression"><code>PrefixedClaimOrExpression</code></a>
+</td>
+<td>
+   <p>username represents an option for the username attribute.
+The claim's value must be a singular string.
+Same as the --oidc-username-claim and --oidc-username-prefix flags.
+If username.expression is set, the expression must produce a string value.
+If username.expression uses 'claims.email', then 'claims.email_verified' must be used in
+username.expression or extra[<em>].valueExpression or claimValidationRules[</em>].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)'.</p>
+<p>In the flag based approach, the --oidc-username-claim and --oidc-username-prefix are optional. If --oidc-username-claim is not set,
+the default value is &quot;sub&quot;. For the authentication config, there is no defaulting for claim or prefix. The claim and prefix must be set explicitly.
+For claim, if --oidc-username-claim was not set with legacy flag approach, configure username.claim=&quot;sub&quot; in the authentication config.
+For prefix:
+(1) --oidc-username-prefix=&quot;-&quot;, no prefix was added to the username. For the same behavior using authentication config,
+set username.prefix=&quot;&quot;
+(2) --oidc-username-prefix=&quot;&quot; and  --oidc-username-claim != &quot;email&quot;, prefix was &quot;&lt;value of --oidc-issuer-url&gt;#&quot;. For the same
+behavior using authentication config, set username.prefix=&quot;<!-- raw HTML omitted -->#&quot;
+(3) --oidc-username-prefix=&quot;<!-- raw HTML omitted -->&quot;. For the same behavior using authentication config, set username.prefix=&quot;<!-- raw HTML omitted -->&quot;</p>
+</td>
+</tr>
+<tr><td><code>groups</code><br/>
+<a href="#apiserver-k8s-io-v1beta1-PrefixedClaimOrExpression"><code>PrefixedClaimOrExpression</code></a>
+</td>
+<td>
+   <p>groups represents an option for the groups attribute.
+The claim's value must be a string or string array claim.
+If groups.claim is set, the prefix must be specified (and can be the empty string).
+If groups.expression is set, the expression must produce a string or string array value.
+&quot;&quot;, [], and null values are treated as the group mapping not being present.</p>
+</td>
+</tr>
+<tr><td><code>uid</code><br/>
+<a href="#apiserver-k8s-io-v1beta1-ClaimOrExpression"><code>ClaimOrExpression</code></a>
+</td>
+<td>
+   <p>uid represents an option for the uid attribute.
+Claim must be a singular string claim.
+If uid.expression is set, the expression must produce a string value.</p>
+</td>
+</tr>
+<tr><td><code>extra</code><br/>
+<a href="#apiserver-k8s-io-v1beta1-ExtraMapping"><code>[]ExtraMapping</code></a>
+</td>
+<td>
+   <p>extra represents an option for the extra attribute.
+expression must produce a string or string array value.
+If the value is empty, the extra mapping will not be present.</p>
+<p>hard-coded extra key/value</p>
+<ul>
+<li>key: &quot;foo&quot;
+valueExpression: &quot;'bar'&quot;
+This will result in an extra attribute - foo: [&quot;bar&quot;]</li>
+</ul>
+<p>hard-coded key, value copying claim value</p>
+<ul>
+<li>key: &quot;foo&quot;
+valueExpression: &quot;claims.some_claim&quot;
+This will result in an extra attribute - foo: [value of some_claim]</li>
+</ul>
+<p>hard-coded key, value derived from claim value</p>
+<ul>
+<li>key: &quot;admin&quot;
+valueExpression: '(has(claims.is_admin) &amp;&amp; claims.is_admin) ? &quot;true&quot;:&quot;&quot;'
+This will result in:</li>
+<li>if is_admin claim is present and true, extra attribute - admin: [&quot;true&quot;]</li>
+<li>if is_admin claim is present and false or is_admin claim is not present, no extra attribute will be added</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+
+## `ClaimOrExpression`     {#apiserver-k8s-io-v1beta1-ClaimOrExpression}
+    
+
+**Appears in:**
+
+- [ClaimMappings](#apiserver-k8s-io-v1beta1-ClaimMappings)
+
+
+<p>ClaimOrExpression provides the configuration for a single claim or expression.</p>
+
+
+<table class="table">
+<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
+<tbody>
+    
+  
+<tr><td><code>claim</code><br/>
+<code>string</code>
+</td>
+<td>
+   <p>claim is the JWT claim to use.
+Either claim or expression must be set.
+Mutually exclusive with expression.</p>
+</td>
+</tr>
+<tr><td><code>expression</code><br/>
+<code>string</code>
+</td>
+<td>
+   <p>expression represents the expression which will be evaluated by CEL.</p>
+<p>CEL expressions have access to the contents of the token claims, organized into CEL variable:</p>
+<ul>
+<li>'claims' is a map of claim names to claim values.
+For example, a variable named 'sub' can be accessed as 'claims.sub'.
+Nested claims can be accessed using dot notation, e.g. 'claims.foo.bar'.</li>
+</ul>
+<p>Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/</p>
+<p>Mutually exclusive with claim.</p>
+</td>
+</tr>
+</tbody>
+</table>
+
+## `ClaimValidationRule`     {#apiserver-k8s-io-v1beta1-ClaimValidationRule}
+    
+
+**Appears in:**
+
+- [JWTAuthenticator](#apiserver-k8s-io-v1beta1-JWTAuthenticator)
+
+
+<p>ClaimValidationRule provides the configuration for a single claim validation rule.</p>
+
+
+<table class="table">
+<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
+<tbody>
+    
+  
+<tr><td><code>claim</code><br/>
+<code>string</code>
+</td>
+<td>
+   <p>claim is the name of a required claim.
+Same as --oidc-required-claim flag.
+Only string claim keys are supported.
+Mutually exclusive with expression and message.</p>
+</td>
+</tr>
+<tr><td><code>requiredValue</code><br/>
+<code>string</code>
+</td>
+<td>
+   <p>requiredValue is the value of a required claim.
+Same as --oidc-required-claim flag.
+Only string claim values are supported.
+If claim is set and requiredValue is not set, the claim must be present with a value set to the empty string.
+Mutually exclusive with expression and message.</p>
+</td>
+</tr>
+<tr><td><code>expression</code><br/>
+<code>string</code>
+</td>
+<td>
+   <p>expression represents the expression which will be evaluated by CEL.
+Must produce a boolean.</p>
+<p>CEL expressions have access to the contents of the token claims, organized into CEL variable:</p>
+<ul>
+<li>'claims' is a map of claim names to claim values.
+For example, a variable named 'sub' can be accessed as 'claims.sub'.
+Nested claims can be accessed using dot notation, e.g. 'claims.foo.bar'.
+Must return true for the validation to pass.</li>
+</ul>
+<p>Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/</p>
+<p>Mutually exclusive with claim and requiredValue.</p>
+</td>
+</tr>
+<tr><td><code>message</code><br/>
+<code>string</code>
+</td>
+<td>
+   <p>message customizes the returned error message when expression returns false.
+message is a literal string.
+Mutually exclusive with claim and requiredValue.</p>
+</td>
+</tr>
+</tbody>
+</table>
+
 ## `Connection`     {#apiserver-k8s-io-v1beta1-Connection}
     
 
@@ -177,6 +508,256 @@ The &quot;master&quot; egress selector is deprecated in favor of &quot;controlpl
 </tbody>
 </table>
 
+## `ExtraMapping`     {#apiserver-k8s-io-v1beta1-ExtraMapping}
+    
+
+**Appears in:**
+
+- [ClaimMappings](#apiserver-k8s-io-v1beta1-ClaimMappings)
+
+
+<p>ExtraMapping provides the configuration for a single extra mapping.</p>
+
+
+<table class="table">
+<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
+<tbody>
+    
+  
+<tr><td><code>key</code> <B>[Required]</B><br/>
+<code>string</code>
+</td>
+<td>
+   <p>key is a string to use as the extra attribute key.
+key must be a domain-prefix path (e.g. example.org/foo). All characters before the first &quot;/&quot; must be a valid
+subdomain as defined by RFC 1123. All characters trailing the first &quot;/&quot; must
+be valid HTTP Path characters as defined by RFC 3986.
+key must be lowercase.
+Required to be unique.</p>
+</td>
+</tr>
+<tr><td><code>valueExpression</code> <B>[Required]</B><br/>
+<code>string</code>
+</td>
+<td>
+   <p>valueExpression is a CEL expression to extract extra attribute value.
+valueExpression must produce a string or string array value.
+&quot;&quot;, [], and null values are treated as the extra mapping not being present.
+Empty string values contained within a string array are filtered out.</p>
+<p>CEL expressions have access to the contents of the token claims, organized into CEL variable:</p>
+<ul>
+<li>'claims' is a map of claim names to claim values.
+For example, a variable named 'sub' can be accessed as 'claims.sub'.
+Nested claims can be accessed using dot notation, e.g. 'claims.foo.bar'.</li>
+</ul>
+<p>Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/</p>
+</td>
+</tr>
+</tbody>
+</table>
+
+## `Issuer`     {#apiserver-k8s-io-v1beta1-Issuer}
+    
+
+**Appears in:**
+
+- [JWTAuthenticator](#apiserver-k8s-io-v1beta1-JWTAuthenticator)
+
+
+<p>Issuer provides the configuration for an external provider's specific settings.</p>
+
+
+<table class="table">
+<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
+<tbody>
+    
+  
+<tr><td><code>url</code> <B>[Required]</B><br/>
+<code>string</code>
+</td>
+<td>
+   <p>url points to the issuer URL in a format https://url or https://url/path.
+This must match the &quot;iss&quot; claim in the presented JWT, and the issuer returned from discovery.
+Same value as the --oidc-issuer-url flag.
+Discovery information is fetched from &quot;{url}/.well-known/openid-configuration&quot; unless overridden by discoveryURL.
+Required to be unique across all JWT authenticators.
+Note that egress selection configuration is not used for this network connection.</p>
+</td>
+</tr>
+<tr><td><code>discoveryURL</code><br/>
+<code>string</code>
+</td>
+<td>
+   <p>discoveryURL, if specified, overrides the URL used to fetch discovery
+information instead of using &quot;{url}/.well-known/openid-configuration&quot;.
+The exact value specified is used, so &quot;/.well-known/openid-configuration&quot;
+must be included in discoveryURL if needed.</p>
+<p>The &quot;issuer&quot; field in the fetched discovery information must match the &quot;issuer.url&quot; field
+in the AuthenticationConfiguration and will be used to validate the &quot;iss&quot; claim in the presented JWT.
+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).</p>
+<p>Example:
+A discovery url that is exposed using kubernetes service 'oidc' in namespace 'oidc-namespace'
+and discovery information is available at '/.well-known/openid-configuration'.
+discoveryURL: &quot;https://oidc.oidc-namespace/.well-known/openid-configuration&quot;
+certificateAuthority is used to verify the TLS connection and the hostname on the leaf certificate
+must be set to 'oidc.oidc-namespace'.</p>
+<p>curl https://oidc.oidc-namespace/.well-known/openid-configuration (.discoveryURL field)
+{
+issuer: &quot;https://oidc.example.com&quot; (.url field)
+}</p>
+<p>discoveryURL must be different from url.
+Required to be unique across all JWT authenticators.
+Note that egress selection configuration is not used for this network connection.</p>
+</td>
+</tr>
+<tr><td><code>certificateAuthority</code><br/>
+<code>string</code>
+</td>
+<td>
+   <p>certificateAuthority contains PEM-encoded certificate authority certificates
+used to validate the connection when fetching discovery information.
+If unset, the system verifier is used.
+Same value as the content of the file referenced by the --oidc-ca-file flag.</p>
+</td>
+</tr>
+<tr><td><code>audiences</code> <B>[Required]</B><br/>
+<code>[]string</code>
+</td>
+<td>
+   <p>audiences is the set of acceptable audiences the JWT must be issued to.
+At least one of the entries must match the &quot;aud&quot; claim in presented JWTs.
+Same value as the --oidc-client-id flag (though this field supports an array).
+Required to be non-empty.</p>
+</td>
+</tr>
+<tr><td><code>audienceMatchPolicy</code><br/>
+<a href="#apiserver-k8s-io-v1beta1-AudienceMatchPolicyType"><code>AudienceMatchPolicyType</code></a>
+</td>
+<td>
+   <p>audienceMatchPolicy defines how the &quot;audiences&quot; field is used to match the &quot;aud&quot; claim in the presented JWT.
+Allowed values are:</p>
+<ol>
+<li>&quot;MatchAny&quot; when multiple audiences are specified and</li>
+<li>empty (or unset) or &quot;MatchAny&quot; when a single audience is specified.</li>
+</ol>
+<ul>
+<li>
+<p>MatchAny: the &quot;aud&quot; claim in the presented JWT must match at least one of the entries in the &quot;audiences&quot; field.
+For example, if &quot;audiences&quot; is [&quot;foo&quot;, &quot;bar&quot;], the &quot;aud&quot; claim in the presented JWT must contain either &quot;foo&quot; or &quot;bar&quot; (and may contain both).</p>
+</li>
+<li>
+<p>&quot;&quot;: The match policy can be empty (or unset) when a single audience is specified in the &quot;audiences&quot; field. The &quot;aud&quot; claim in the presented JWT must contain the single audience (and may contain others).</p>
+</li>
+</ul>
+<p>For more nuanced audience validation, use claimValidationRules.
+example: claimValidationRule[].expression: 'sets.equivalent(claims.aud, [&quot;bar&quot;, &quot;foo&quot;, &quot;baz&quot;])' to require an exact match.</p>
+</td>
+</tr>
+</tbody>
+</table>
+
+## `JWTAuthenticator`     {#apiserver-k8s-io-v1beta1-JWTAuthenticator}
+    
+
+**Appears in:**
+
+- [AuthenticationConfiguration](#apiserver-k8s-io-v1beta1-AuthenticationConfiguration)
+
+
+<p>JWTAuthenticator provides the configuration for a single JWT authenticator.</p>
+
+
+<table class="table">
+<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
+<tbody>
+    
+  
+<tr><td><code>issuer</code> <B>[Required]</B><br/>
+<a href="#apiserver-k8s-io-v1beta1-Issuer"><code>Issuer</code></a>
+</td>
+<td>
+   <p>issuer contains the basic OIDC provider connection options.</p>
+</td>
+</tr>
+<tr><td><code>claimValidationRules</code><br/>
+<a href="#apiserver-k8s-io-v1beta1-ClaimValidationRule"><code>[]ClaimValidationRule</code></a>
+</td>
+<td>
+   <p>claimValidationRules are rules that are applied to validate token claims to authenticate users.</p>
+</td>
+</tr>
+<tr><td><code>claimMappings</code> <B>[Required]</B><br/>
+<a href="#apiserver-k8s-io-v1beta1-ClaimMappings"><code>ClaimMappings</code></a>
+</td>
+<td>
+   <p>claimMappings points claims of a token to be treated as user attributes.</p>
+</td>
+</tr>
+<tr><td><code>userValidationRules</code><br/>
+<a href="#apiserver-k8s-io-v1beta1-UserValidationRule"><code>[]UserValidationRule</code></a>
+</td>
+<td>
+   <p>userValidationRules are rules that are applied to final user before completing authentication.
+These allow invariants to be applied to incoming identities such as preventing the
+use of the system: prefix that is commonly used by Kubernetes components.
+The validation rules are logically ANDed together and must all return true for the validation to pass.</p>
+</td>
+</tr>
+</tbody>
+</table>
+
+## `PrefixedClaimOrExpression`     {#apiserver-k8s-io-v1beta1-PrefixedClaimOrExpression}
+    
+
+**Appears in:**
+
+- [ClaimMappings](#apiserver-k8s-io-v1beta1-ClaimMappings)
+
+
+<p>PrefixedClaimOrExpression provides the configuration for a single prefixed claim or expression.</p>
+
+
+<table class="table">
+<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
+<tbody>
+    
+  
+<tr><td><code>claim</code><br/>
+<code>string</code>
+</td>
+<td>
+   <p>claim is the JWT claim to use.
+Mutually exclusive with expression.</p>
+</td>
+</tr>
+<tr><td><code>prefix</code><br/>
+<code>string</code>
+</td>
+<td>
+   <p>prefix is prepended to claim's value to prevent clashes with existing names.
+prefix needs to be set if claim is set and can be the empty string.
+Mutually exclusive with expression.</p>
+</td>
+</tr>
+<tr><td><code>expression</code><br/>
+<code>string</code>
+</td>
+<td>
+   <p>expression represents the expression which will be evaluated by CEL.</p>
+<p>CEL expressions have access to the contents of the token claims, organized into CEL variable:</p>
+<ul>
+<li>'claims' is a map of claim names to claim values.
+For example, a variable named 'sub' can be accessed as 'claims.sub'.
+Nested claims can be accessed using dot notation, e.g. 'claims.foo.bar'.</li>
+</ul>
+<p>Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/</p>
+<p>Mutually exclusive with claim and prefix.</p>
+</td>
+</tr>
+</tbody>
+</table>
+
 ## `ProtocolType`     {#apiserver-k8s-io-v1beta1-ProtocolType}
     
 (Alias of `string`)
@@ -334,4 +915,224 @@ This does not use a unix:// prefix. (Eg: /etc/srv/kubernetes/konnectivity-server
 </tr>
 </tbody>
 </table>
+
+## `UserValidationRule`     {#apiserver-k8s-io-v1beta1-UserValidationRule}
+    
+
+**Appears in:**
+
+- [JWTAuthenticator](#apiserver-k8s-io-v1beta1-JWTAuthenticator)
+
+
+<p>UserValidationRule provides the configuration for a single user info validation rule.</p>
+
+
+<table class="table">
+<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
+<tbody>
+    
+  
+<tr><td><code>expression</code> <B>[Required]</B><br/>
+<code>string</code>
+</td>
+<td>
+   <p>expression represents the expression which will be evaluated by CEL.
+Must return true for the validation to pass.</p>
+<p>CEL expressions have access to the contents of UserInfo, organized into CEL variable:</p>
+<ul>
+<li>'user' - authentication.k8s.io/v1, Kind=UserInfo object
+Refer to https://github.com/kubernetes/api/blob/release-1.28/authentication/v1/types.go#L105-L122 for the definition.
+API documentation: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#userinfo-v1-authentication-k8s-io</li>
+</ul>
+<p>Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/</p>
+</td>
+</tr>
+<tr><td><code>message</code><br/>
+<code>string</code>
+</td>
+<td>
+   <p>message customizes the returned error message when rule returns false.
+message is a literal string.</p>
+</td>
+</tr>
+</tbody>
+</table>
+
+## `WebhookConfiguration`     {#apiserver-k8s-io-v1beta1-WebhookConfiguration}
+    
+
+**Appears in:**
+
+- [AuthorizerConfiguration](#apiserver-k8s-io-v1beta1-AuthorizerConfiguration)
+
+
+
+<table class="table">
+<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
+<tbody>
+    
+  
+<tr><td><code>authorizedTTL</code> <B>[Required]</B><br/>
+<a href="https://pkg.go.dev/k8s.io/apimachinery/pkg/apis/meta/v1#Duration"><code>meta/v1.Duration</code></a>
+</td>
+<td>
+   <p>The duration to cache 'authorized' responses from the webhook
+authorizer.
+Same as setting <code>--authorization-webhook-cache-authorized-ttl</code> flag
+Default: 5m0s</p>
+</td>
+</tr>
+<tr><td><code>unauthorizedTTL</code> <B>[Required]</B><br/>
+<a href="https://pkg.go.dev/k8s.io/apimachinery/pkg/apis/meta/v1#Duration"><code>meta/v1.Duration</code></a>
+</td>
+<td>
+   <p>The duration to cache 'unauthorized' responses from the webhook
+authorizer.
+Same as setting <code>--authorization-webhook-cache-unauthorized-ttl</code> flag
+Default: 30s</p>
+</td>
+</tr>
+<tr><td><code>timeout</code> <B>[Required]</B><br/>
+<a href="https://pkg.go.dev/k8s.io/apimachinery/pkg/apis/meta/v1#Duration"><code>meta/v1.Duration</code></a>
+</td>
+<td>
+   <p>Timeout for the webhook request
+Maximum allowed value is 30s.
+Required, no default value.</p>
+</td>
+</tr>
+<tr><td><code>subjectAccessReviewVersion</code> <B>[Required]</B><br/>
+<code>string</code>
+</td>
+<td>
+   <p>The API version of the authorization.k8s.io SubjectAccessReview to
+send to and expect from the webhook.
+Same as setting <code>--authorization-webhook-version</code> flag
+Valid values: v1beta1, v1
+Required, no default value</p>
+</td>
+</tr>
+<tr><td><code>matchConditionSubjectAccessReviewVersion</code> <B>[Required]</B><br/>
+<code>string</code>
+</td>
+<td>
+   <p>MatchConditionSubjectAccessReviewVersion specifies the SubjectAccessReview
+version the CEL expressions are evaluated against
+Valid values: v1
+Required, no default value</p>
+</td>
+</tr>
+<tr><td><code>failurePolicy</code> <B>[Required]</B><br/>
+<code>string</code>
+</td>
+<td>
+   <p>Controls the authorization decision when a webhook request fails to
+complete or returns a malformed response or errors evaluating
+matchConditions.
+Valid values:</p>
+<ul>
+<li>NoOpinion: continue to subsequent authorizers to see if one of
+them allows the request</li>
+<li>Deny: reject the request without consulting subsequent authorizers
+Required, with no default.</li>
+</ul>
+</td>
+</tr>
+<tr><td><code>connectionInfo</code> <B>[Required]</B><br/>
+<a href="#apiserver-k8s-io-v1beta1-WebhookConnectionInfo"><code>WebhookConnectionInfo</code></a>
+</td>
+<td>
+   <p>ConnectionInfo defines how we talk to the webhook</p>
+</td>
+</tr>
+<tr><td><code>matchConditions</code> <B>[Required]</B><br/>
+<a href="#apiserver-k8s-io-v1beta1-WebhookMatchCondition"><code>[]WebhookMatchCondition</code></a>
+</td>
+<td>
+   <p>matchConditions is a list of conditions that must be met for a request to be sent to this
+webhook. An empty list of matchConditions matches all requests.
+There are a maximum of 64 match conditions allowed.</p>
+<p>The exact matching logic is (in order):</p>
+<ol>
+<li>If at least one matchCondition evaluates to FALSE, then the webhook is skipped.</li>
+<li>If ALL matchConditions evaluate to TRUE, then the webhook is called.</li>
+<li>If at least one matchCondition evaluates to an error (but none are FALSE):
+<ul>
+<li>If failurePolicy=Deny, then the webhook rejects the request</li>
+<li>If failurePolicy=NoOpinion, then the error is ignored and the webhook is skipped</li>
+</ul>
+</li>
+</ol>
+</td>
+</tr>
+</tbody>
+</table>
+
+## `WebhookConnectionInfo`     {#apiserver-k8s-io-v1beta1-WebhookConnectionInfo}
+    
+
+**Appears in:**
+
+- [WebhookConfiguration](#apiserver-k8s-io-v1beta1-WebhookConfiguration)
+
+
+
+<table class="table">
+<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
+<tbody>
+    
+  
+<tr><td><code>type</code> <B>[Required]</B><br/>
+<code>string</code>
+</td>
+<td>
+   <p>Controls how the webhook should communicate with the server.
+Valid values:</p>
+<ul>
+<li>KubeConfigFile: use the file specified in kubeConfigFile to locate the
+server.</li>
+<li>InClusterConfig: use the in-cluster configuration to call the
+SubjectAccessReview API hosted by kube-apiserver. This mode is not
+allowed for kube-apiserver.</li>
+</ul>
+</td>
+</tr>
+<tr><td><code>kubeConfigFile</code> <B>[Required]</B><br/>
+<code>string</code>
+</td>
+<td>
+   <p>Path to KubeConfigFile for connection info
+Required, if connectionInfo.Type is KubeConfig</p>
+</td>
+</tr>
+</tbody>
+</table>
+
+## `WebhookMatchCondition`     {#apiserver-k8s-io-v1beta1-WebhookMatchCondition}
+    
+
+**Appears in:**
+
+- [WebhookConfiguration](#apiserver-k8s-io-v1beta1-WebhookConfiguration)
+
+
+
+<table class="table">
+<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
+<tbody>
+    
+  
+<tr><td><code>expression</code> <B>[Required]</B><br/>
+<code>string</code>
+</td>
+<td>
+   <p>expression represents the expression which will be evaluated by CEL. Must evaluate to bool.
+CEL expressions have access to the contents of the SubjectAccessReview in v1 version.
+If version specified by subjectAccessReviewVersion in the request variable is v1beta1,
+the contents would be converted to the v1 version before evaluating the CEL expression.</p>
+<p>Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/</p>
+</td>
+</tr>
+</tbody>
+</table>
   
\ No newline at end of file
diff --git a/content/en/docs/reference/config-api/apiserver-encryption.v1.md b/content/en/docs/reference/config-api/apiserver-encryption.v1.md
deleted file mode 100644
index 30d42277e6..0000000000
--- a/content/en/docs/reference/config-api/apiserver-encryption.v1.md
+++ /dev/null
@@ -1,327 +0,0 @@
----
-title: kube-apiserver Encryption Configuration (v1)
-content_type: tool-reference
-package: apiserver.config.k8s.io/v1
-auto_generated: true
----
-<p>Package v1 is the v1 version of the API.</p>
-
-
-## Resource Types 
-
-
-- [EncryptionConfiguration](#apiserver-config-k8s-io-v1-EncryptionConfiguration)
-  
-
-## `EncryptionConfiguration`     {#apiserver-config-k8s-io-v1-EncryptionConfiguration}
-    
-
-
-<p>EncryptionConfiguration stores the complete configuration for encryption providers.
-It also allows the use of wildcards to specify the resources that should be encrypted.
-Use '<em>.<!-- raw HTML omitted -->' to encrypt all resources within a group or '</em>.<em>' to encrypt all resources.
-'</em>.' can be used to encrypt all resource in the core group.  '<em>.</em>' will encrypt all
-resources, even custom resources that are added after API server start.
-Use of wildcards that overlap within the same resource list or across multiple
-entries are not allowed since part of the configuration would be ineffective.
-Resource lists are processed in order, with earlier lists taking precedence.</p>
-<p>Example:</p>
-<pre><code>kind: EncryptionConfiguration
-apiVersion: apiserver.config.k8s.io/v1
-resources:
-- resources:
-  - events
-  providers:
-  - identity: {}  # do not encrypt events even though *.* is specified below
-- resources:
-  - secrets
-  - configmaps
-  - pandas.awesome.bears.example
-  providers:
-  - aescbc:
-      keys:
-      - name: key1
-        secret: c2VjcmV0IGlzIHNlY3VyZQ==
-- resources:
-  - '*.apps'
-  providers:
-  - aescbc:
-      keys:
-      - name: key2
-        secret: c2VjcmV0IGlzIHNlY3VyZSwgb3IgaXMgaXQ/Cg==
-- resources:
-  - '*.*'
-  providers:
-  - aescbc:
-      keys:
-      - name: key3
-        secret: c2VjcmV0IGlzIHNlY3VyZSwgSSB0aGluaw==</code></pre>
-
-
-<table class="table">
-<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
-<tbody>
-    
-<tr><td><code>apiVersion</code><br/>string</td><td><code>apiserver.config.k8s.io/v1</code></td></tr>
-<tr><td><code>kind</code><br/>string</td><td><code>EncryptionConfiguration</code></td></tr>
-    
-  
-<tr><td><code>resources</code> <B>[Required]</B><br/>
-<a href="#apiserver-config-k8s-io-v1-ResourceConfiguration"><code>[]ResourceConfiguration</code></a>
-</td>
-<td>
-   <p>resources is a list containing resources, and their corresponding encryption providers.</p>
-</td>
-</tr>
-</tbody>
-</table>
-
-## `AESConfiguration`     {#apiserver-config-k8s-io-v1-AESConfiguration}
-    
-
-**Appears in:**
-
-- [ProviderConfiguration](#apiserver-config-k8s-io-v1-ProviderConfiguration)
-
-
-<p>AESConfiguration contains the API configuration for an AES transformer.</p>
-
-
-<table class="table">
-<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
-<tbody>
-    
-  
-<tr><td><code>keys</code> <B>[Required]</B><br/>
-<a href="#apiserver-config-k8s-io-v1-Key"><code>[]Key</code></a>
-</td>
-<td>
-   <p>keys is a list of keys to be used for creating the AES transformer.
-Each key has to be 32 bytes long for AES-CBC and 16, 24 or 32 bytes for AES-GCM.</p>
-</td>
-</tr>
-</tbody>
-</table>
-
-## `IdentityConfiguration`     {#apiserver-config-k8s-io-v1-IdentityConfiguration}
-    
-
-**Appears in:**
-
-- [ProviderConfiguration](#apiserver-config-k8s-io-v1-ProviderConfiguration)
-
-
-<p>IdentityConfiguration is an empty struct to allow identity transformer in provider configuration.</p>
-
-
-
-
-## `KMSConfiguration`     {#apiserver-config-k8s-io-v1-KMSConfiguration}
-    
-
-**Appears in:**
-
-- [ProviderConfiguration](#apiserver-config-k8s-io-v1-ProviderConfiguration)
-
-
-<p>KMSConfiguration contains the name, cache size and path to configuration file for a KMS based envelope transformer.</p>
-
-
-<table class="table">
-<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
-<tbody>
-    
-  
-<tr><td><code>apiVersion</code><br/>
-<code>string</code>
-</td>
-<td>
-   <p>apiVersion of KeyManagementService</p>
-</td>
-</tr>
-<tr><td><code>name</code> <B>[Required]</B><br/>
-<code>string</code>
-</td>
-<td>
-   <p>name is the name of the KMS plugin to be used.</p>
-</td>
-</tr>
-<tr><td><code>cachesize</code><br/>
-<code>int32</code>
-</td>
-<td>
-   <p>cachesize is the maximum number of secrets which are cached in memory. The default value is 1000.
-Set to a negative value to disable caching. This field is only allowed for KMS v1 providers.</p>
-</td>
-</tr>
-<tr><td><code>endpoint</code> <B>[Required]</B><br/>
-<code>string</code>
-</td>
-<td>
-   <p>endpoint is the gRPC server listening address, for example &quot;unix:///var/run/kms-provider.sock&quot;.</p>
-</td>
-</tr>
-<tr><td><code>timeout</code><br/>
-<a href="https://pkg.go.dev/k8s.io/apimachinery/pkg/apis/meta/v1#Duration"><code>meta/v1.Duration</code></a>
-</td>
-<td>
-   <p>timeout for gRPC calls to kms-plugin (ex. 5s). The default is 3 seconds.</p>
-</td>
-</tr>
-</tbody>
-</table>
-
-## `Key`     {#apiserver-config-k8s-io-v1-Key}
-    
-
-**Appears in:**
-
-- [AESConfiguration](#apiserver-config-k8s-io-v1-AESConfiguration)
-
-- [SecretboxConfiguration](#apiserver-config-k8s-io-v1-SecretboxConfiguration)
-
-
-<p>Key contains name and secret of the provided key for a transformer.</p>
-
-
-<table class="table">
-<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
-<tbody>
-    
-  
-<tr><td><code>name</code> <B>[Required]</B><br/>
-<code>string</code>
-</td>
-<td>
-   <p>name is the name of the key to be used while storing data to disk.</p>
-</td>
-</tr>
-<tr><td><code>secret</code> <B>[Required]</B><br/>
-<code>string</code>
-</td>
-<td>
-   <p>secret is the actual key, encoded in base64.</p>
-</td>
-</tr>
-</tbody>
-</table>
-
-## `ProviderConfiguration`     {#apiserver-config-k8s-io-v1-ProviderConfiguration}
-    
-
-**Appears in:**
-
-- [ResourceConfiguration](#apiserver-config-k8s-io-v1-ResourceConfiguration)
-
-
-<p>ProviderConfiguration stores the provided configuration for an encryption provider.</p>
-
-
-<table class="table">
-<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
-<tbody>
-    
-  
-<tr><td><code>aesgcm</code> <B>[Required]</B><br/>
-<a href="#apiserver-config-k8s-io-v1-AESConfiguration"><code>AESConfiguration</code></a>
-</td>
-<td>
-   <p>aesgcm is the configuration for the AES-GCM transformer.</p>
-</td>
-</tr>
-<tr><td><code>aescbc</code> <B>[Required]</B><br/>
-<a href="#apiserver-config-k8s-io-v1-AESConfiguration"><code>AESConfiguration</code></a>
-</td>
-<td>
-   <p>aescbc is the configuration for the AES-CBC transformer.</p>
-</td>
-</tr>
-<tr><td><code>secretbox</code> <B>[Required]</B><br/>
-<a href="#apiserver-config-k8s-io-v1-SecretboxConfiguration"><code>SecretboxConfiguration</code></a>
-</td>
-<td>
-   <p>secretbox is the configuration for the Secretbox based transformer.</p>
-</td>
-</tr>
-<tr><td><code>identity</code> <B>[Required]</B><br/>
-<a href="#apiserver-config-k8s-io-v1-IdentityConfiguration"><code>IdentityConfiguration</code></a>
-</td>
-<td>
-   <p>identity is the (empty) configuration for the identity transformer.</p>
-</td>
-</tr>
-<tr><td><code>kms</code> <B>[Required]</B><br/>
-<a href="#apiserver-config-k8s-io-v1-KMSConfiguration"><code>KMSConfiguration</code></a>
-</td>
-<td>
-   <p>kms contains the name, cache size and path to configuration file for a KMS based envelope transformer.</p>
-</td>
-</tr>
-</tbody>
-</table>
-
-## `ResourceConfiguration`     {#apiserver-config-k8s-io-v1-ResourceConfiguration}
-    
-
-**Appears in:**
-
-- [EncryptionConfiguration](#apiserver-config-k8s-io-v1-EncryptionConfiguration)
-
-
-<p>ResourceConfiguration stores per resource configuration.</p>
-
-
-<table class="table">
-<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
-<tbody>
-    
-  
-<tr><td><code>resources</code> <B>[Required]</B><br/>
-<code>[]string</code>
-</td>
-<td>
-   <p>resources is a list of kubernetes resources which have to be encrypted. The resource names are derived from <code>resource</code> or <code>resource.group</code> of the group/version/resource.
-eg: pandas.awesome.bears.example is a custom resource with 'group': awesome.bears.example, 'resource': pandas.
-Use '<em>.</em>' to encrypt all resources and '<em>.<!-- raw HTML omitted -->' to encrypt all resources in a specific group.
-eg: '</em>.awesome.bears.example' will encrypt all resources in the group 'awesome.bears.example'.
-eg: '*.' will encrypt all resources in the core group (such as pods, configmaps, etc).</p>
-</td>
-</tr>
-<tr><td><code>providers</code> <B>[Required]</B><br/>
-<a href="#apiserver-config-k8s-io-v1-ProviderConfiguration"><code>[]ProviderConfiguration</code></a>
-</td>
-<td>
-   <p>providers is a list of transformers to be used for reading and writing the resources to disk.
-eg: aesgcm, aescbc, secretbox, identity, kms.</p>
-</td>
-</tr>
-</tbody>
-</table>
-
-## `SecretboxConfiguration`     {#apiserver-config-k8s-io-v1-SecretboxConfiguration}
-    
-
-**Appears in:**
-
-- [ProviderConfiguration](#apiserver-config-k8s-io-v1-ProviderConfiguration)
-
-
-<p>SecretboxConfiguration contains the API configuration for an Secretbox transformer.</p>
-
-
-<table class="table">
-<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
-<tbody>
-    
-  
-<tr><td><code>keys</code> <B>[Required]</B><br/>
-<a href="#apiserver-config-k8s-io-v1-Key"><code>[]Key</code></a>
-</td>
-<td>
-   <p>keys is a list of keys to be used for creating the Secretbox transformer.
-Each key has to be 32 bytes long.</p>
-</td>
-</tr>
-</tbody>
-</table>
-  
\ No newline at end of file
diff --git a/content/en/docs/reference/config-api/client-authentication.v1.md b/content/en/docs/reference/config-api/client-authentication.v1.md
index e49be08c93..5b0f460be5 100644
--- a/content/en/docs/reference/config-api/client-authentication.v1.md
+++ b/content/en/docs/reference/config-api/client-authentication.v1.md
@@ -205,7 +205,7 @@ itself should at least be protected via file permissions.</p>
     
   
 <tr><td><code>expirationTimestamp</code><br/>
-<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#time-v1-meta"><code>meta/v1.Time</code></a>
+<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#time-v1-meta"><code>meta/v1.Time</code></a>
 </td>
 <td>
    <p>ExpirationTimestamp indicates a time when the provided credentials expire.</p>
diff --git a/content/en/docs/reference/config-api/client-authentication.v1beta1.md b/content/en/docs/reference/config-api/client-authentication.v1beta1.md
index cd60d94c56..e787539df7 100644
--- a/content/en/docs/reference/config-api/client-authentication.v1beta1.md
+++ b/content/en/docs/reference/config-api/client-authentication.v1beta1.md
@@ -205,7 +205,7 @@ itself should at least be protected via file permissions.</p>
     
   
 <tr><td><code>expirationTimestamp</code><br/>
-<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#time-v1-meta"><code>meta/v1.Time</code></a>
+<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#time-v1-meta"><code>meta/v1.Time</code></a>
 </td>
 <td>
    <p>ExpirationTimestamp indicates a time when the provided credentials expire.</p>
diff --git a/content/en/docs/reference/config-api/imagepolicy.v1alpha1.md b/content/en/docs/reference/config-api/imagepolicy.v1alpha1.md
index d03ab74796..c93f3bcb4a 100644
--- a/content/en/docs/reference/config-api/imagepolicy.v1alpha1.md
+++ b/content/en/docs/reference/config-api/imagepolicy.v1alpha1.md
@@ -28,7 +28,7 @@ auto_generated: true
     
   
 <tr><td><code>metadata</code><br/>
-<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#objectmeta-v1-meta"><code>meta/v1.ObjectMeta</code></a>
+<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#objectmeta-v1-meta"><code>meta/v1.ObjectMeta</code></a>
 </td>
 <td>
    <p>Standard object's metadata.
diff --git a/content/en/docs/reference/config-api/kube-controller-manager-config.v1alpha1.md b/content/en/docs/reference/config-api/kube-controller-manager-config.v1alpha1.md
index d63e35f68a..6988671969 100644
--- a/content/en/docs/reference/config-api/kube-controller-manager-config.v1alpha1.md
+++ b/content/en/docs/reference/config-api/kube-controller-manager-config.v1alpha1.md
@@ -769,7 +769,16 @@ This flag enables or disables reconcile.  Is false by default, and thus enabled.
 </td>
 <td>
    <p>ReconcilerSyncLoopPeriod is the amount of time the reconciler sync states loop
-wait between successive executions. Is set to 5 sec by default.</p>
+wait between successive executions. Is set to 60 sec by default.</p>
+</td>
+</tr>
+<tr><td><code>disableForceDetachOnTimeout</code> <B>[Required]</B><br/>
+<code>bool</code>
+</td>
+<td>
+   <p>DisableForceDetachOnTimeout disables force detach when the maximum unmount
+time is exceeded. Is false by default, and thus force detach on unmount is
+enabled.</p>
 </td>
 </tr>
 </tbody>
diff --git a/content/en/docs/reference/config-api/kube-scheduler-config.v1.md b/content/en/docs/reference/config-api/kube-scheduler-config.v1.md
index 886523e82e..428f43f43d 100644
--- a/content/en/docs/reference/config-api/kube-scheduler-config.v1.md
+++ b/content/en/docs/reference/config-api/kube-scheduler-config.v1.md
@@ -396,7 +396,7 @@ Defaults to false.</p>
     
   
 <tr><td><code>addedAffinity</code><br/>
-<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#nodeaffinity-v1-core"><code>core/v1.NodeAffinity</code></a>
+<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#nodeaffinity-v1-core"><code>core/v1.NodeAffinity</code></a>
 </td>
 <td>
    <p>AddedAffinity is applied to all Pods additionally to the NodeAffinity
@@ -495,7 +495,7 @@ The default strategy is LeastAllocated with an equal &quot;cpu&quot; and &quot;m
     
   
 <tr><td><code>defaultConstraints</code><br/>
-<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#topologyspreadconstraint-v1-core"><code>[]core/v1.TopologySpreadConstraint</code></a>
+<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#topologyspreadconstraint-v1-core"><code>[]core/v1.TopologySpreadConstraint</code></a>
 </td>
 <td>
    <p>DefaultConstraints defines topology spread constraints to be applied to
diff --git a/content/en/docs/reference/config-api/kubeadm-config.v1beta3.md b/content/en/docs/reference/config-api/kubeadm-config.v1beta3.md
index bb4cec5650..2bca31da93 100644
--- a/content/en/docs/reference/config-api/kubeadm-config.v1beta3.md
+++ b/content/en/docs/reference/config-api/kubeadm-config.v1beta3.md
@@ -307,7 +307,7 @@ for, so other administrators can know its purpose.</p>
 </td>
 </tr>
 <tr><td><code>expires</code><br/>
-<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#time-v1-meta"><code>meta/v1.Time</code></a>
+<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#time-v1-meta"><code>meta/v1.Time</code></a>
 </td>
 <td>
    <p><code>expires</code> specifies the timestamp when this token expires. Defaults to being set
@@ -1038,7 +1038,7 @@ file from which to load cluster information.</p>
 </td>
 </tr>
 <tr><td><code>pathType</code><br/>
-<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#hostpathtype-v1-core"><code>core/v1.HostPathType</code></a>
+<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#hostpathtype-v1-core"><code>core/v1.HostPathType</code></a>
 </td>
 <td>
    <p><code>pathType</code> is the type of the <code>hostPath</code>.</p>
@@ -1262,7 +1262,7 @@ This information will be annotated to the Node API object, for later re-use.</p>
 </td>
 </tr>
 <tr><td><code>taints</code> <B>[Required]</B><br/>
-<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#taint-v1-core"><code>[]core/v1.Taint</code></a>
+<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#taint-v1-core"><code>[]core/v1.Taint</code></a>
 </td>
 <td>
    <p><code>taints</code> specifies the taints the Node API object should be registered with.
@@ -1294,7 +1294,7 @@ Value <code>all</code> ignores errors from all checks.</p>
 </td>
 </tr>
 <tr><td><code>imagePullPolicy</code><br/>
-<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#pullpolicy-v1-core"><code>core/v1.PullPolicy</code></a>
+<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#pullpolicy-v1-core"><code>core/v1.PullPolicy</code></a>
 </td>
 <td>
    <p><code>imagePullPolicy</code> specifies the policy for image pulling during kubeadm &quot;init&quot; and
diff --git a/content/en/docs/reference/config-api/kubeadm-config.v1beta4.md b/content/en/docs/reference/config-api/kubeadm-config.v1beta4.md
index 9a4026bdcb..67ed2f8fb4 100644
--- a/content/en/docs/reference/config-api/kubeadm-config.v1beta4.md
+++ b/content/en/docs/reference/config-api/kubeadm-config.v1beta4.md
@@ -10,8 +10,7 @@ This version improves on the v1beta3 format by fixing some minor issues and addi
 <p>A list of changes since v1beta3:</p>
 <ul>
 <li>TODO https://github.com/kubernetes/kubeadm/issues/2890</li>
-<li>Support custom environment variables in control plane components under
-<code>ClusterConfiguration</code>.
+<li>Support custom environment variables in control plane components under <code>ClusterConfiguration</code>.
 Use <code>APIServer.ExtraEnvs</code>, <code>ControllerManager.ExtraEnvs</code>, <code>Scheduler.ExtraEnvs</code>,
 <code>Etcd.Local.ExtraEnvs</code>.</li>
 <li>The <code>ResetConfiguration</code> API type is now supported in v1beta4.
@@ -21,12 +20,20 @@ Users are able to reset a node by passing a <code>--config</code> file to <code>
 that support duplicates. The change applies to <code>ClusterConfiguration</code> - <code>APIServer.ExtraArgs</code>,
 <code>ControllerManager.ExtraArgs</code>, <code>Scheduler.ExtraArgs</code>. Also to <code>NodeRegistrationOptions.KubeletExtraArgs</code>.</li>
 <li>Add <code>ClusterConfiguration.EncryptionAlgorithm</code> that can be used to set the asymmetric
-encryption algorithm used for this cluster's keys and certificates. Can be <code>&quot;RSA&quot;</code>
-(default algorithm, key size is 2048) or <code>&quot;ECDSA&quot;</code> (uses the P-256 elliptic curve).</li>
+encryption algorithm used for this cluster's keys and certificates. Can be one of
+<code>&quot;RSA-2048&quot;</code> (default), <code>&quot;RSA-3072&quot;</code>, <code>&quot;RSA-4096&quot;</code> or <code>&quot;ECDSA-P256&quot;</code>.</li>
 <li>Add <code>ClusterConfiguration.DNS.Disabled</code> and <code>ClusterConfiguration.Proxy.Disabled</code>
 that can be used to disable the CoreDNS and kube-proxy addons during cluster
 initialization. Skipping the related addons phases, during cluster creation will
 set the same fields to <code>false</code>.</li>
+<li>Add the <code>NodeRegistration.ImagePullSerial</code> field in 'InitConfiguration<code>and</code>JoinConfiguration`, which
+can be used to control if kubeadm pulls images serially or in parallel.</li>
+<li>The UpgradeConfiguration kubeadm API is now supported in v1beta4 when passing
+<code>--config</code> to <code>kubeadm upgrade</code> subcommands. Usage of component configuration for <code>kubelet</code> and <code>kube-proxy</code>,
+InitConfiguration and ClusterConfiguration is deprecated and will be ignored when passing <code>--config</code> to
+<code>upgrade</code> subcommands.</li>
+<li>Add a <code>Timeouts</code> structure to <code>InitConfiguration</code>, <code>JoinConfiguration</code>, <code>ResetConfiguration</code> and <code>UpgradeConfiguration</code>
+that can be used to configure various timeouts.</li>
 </ul>
 <h1>Migration from old kubeadm config versions</h1>
 <ul>
@@ -300,6 +307,7 @@ node only (e.g. the node ip).</p>
 - [InitConfiguration](#kubeadm-k8s-io-v1beta4-InitConfiguration)
 - [JoinConfiguration](#kubeadm-k8s-io-v1beta4-JoinConfiguration)
 - [ResetConfiguration](#kubeadm-k8s-io-v1beta4-ResetConfiguration)
+- [UpgradeConfiguration](#kubeadm-k8s-io-v1beta4-UpgradeConfiguration)
   
     
     
@@ -347,7 +355,7 @@ for, so other administrators can know its purpose.</p>
 </td>
 </tr>
 <tr><td><code>expires</code><br/>
-<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#time-v1-meta"><code>meta/v1.Time</code></a>
+<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#time-v1-meta"><code>meta/v1.Time</code></a>
 </td>
 <td>
    <p><code>expires</code> specifies the timestamp when this token expires. Defaults to being set
@@ -730,7 +738,7 @@ during the reset process.</p>
 <code>string</code>
 </td>
 <td>
-   <p><code> certificatesDir</code> specifies the directory where the certificates are stored.
+   <p><code>certificatesDir</code> specifies the directory where the certificates are stored.
 If specified, it will be cleaned during the reset process.</p>
 </td>
 </tr>
@@ -779,6 +787,59 @@ The list of phases can be obtained with the <code>kubeadm reset phase --help</co
 </tbody>
 </table>
 
+## `UpgradeConfiguration`     {#kubeadm-k8s-io-v1beta4-UpgradeConfiguration}
+    
+
+
+<p>UpgradeConfiguration contains a list of options that are specific to <code>kubeadm upgrade</code> subcommands.</p>
+
+
+<table class="table">
+<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
+<tbody>
+    
+<tr><td><code>apiVersion</code><br/>string</td><td><code>kubeadm.k8s.io/v1beta4</code></td></tr>
+<tr><td><code>kind</code><br/>string</td><td><code>UpgradeConfiguration</code></td></tr>
+    
+  
+<tr><td><code>apply</code><br/>
+<a href="#kubeadm-k8s-io-v1beta4-UpgradeApplyConfiguration"><code>UpgradeApplyConfiguration</code></a>
+</td>
+<td>
+   <p><code>apply</code> holds a list of options that are specific to the <code>kubeadm upgrade apply</code> command.</p>
+</td>
+</tr>
+<tr><td><code>diff</code><br/>
+<a href="#kubeadm-k8s-io-v1beta4-UpgradeDiffConfiguration"><code>UpgradeDiffConfiguration</code></a>
+</td>
+<td>
+   <p><code>diff</code> holds a list of options that are specific to the <code>kubeadm upgrade diff</code> command.</p>
+</td>
+</tr>
+<tr><td><code>node</code><br/>
+<a href="#kubeadm-k8s-io-v1beta4-UpgradeNodeConfiguration"><code>UpgradeNodeConfiguration</code></a>
+</td>
+<td>
+   <p><code>node</code> holds a list of options that are specific to the <code>kubeadm upgrade node</code> command.</p>
+</td>
+</tr>
+<tr><td><code>plan</code><br/>
+<a href="#kubeadm-k8s-io-v1beta4-UpgradePlanConfiguration"><code>UpgradePlanConfiguration</code></a>
+</td>
+<td>
+   <p><code>plan</code> holds a list of options that are specific to the <code>kubeadm upgrade plan</code> command.</p>
+</td>
+</tr>
+<tr><td><code>timeouts</code><br/>
+<a href="#kubeadm-k8s-io-v1beta4-Timeouts"><code>Timeouts</code></a>
+</td>
+<td>
+   <p><code>timeouts</code> holds various timeouts that apply to kubeadm commands.</p>
+</td>
+</tr>
+</tbody>
+</table>
+
 ## `APIEndpoint`     {#kubeadm-k8s-io-v1beta4-APIEndpoint}
     
 
@@ -1113,7 +1174,7 @@ does not contain any other authentication information.</p>
     
   
 <tr><td><code>EnvVar</code> <B>[Required]</B><br/>
-<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#envvar-v1-core"><code>core/v1.EnvVar</code></a>
+<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#envvar-v1-core"><code>core/v1.EnvVar</code></a>
 </td>
 <td>(Members of <code>EnvVar</code> are embedded into this type.)
    <span class="text-muted">No description provided.</span></td>
@@ -1280,7 +1341,7 @@ file from which to load cluster information.</p>
 </td>
 </tr>
 <tr><td><code>pathType</code><br/>
-<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#hostpathtype-v1-core"><code>core/v1.HostPathType</code></a>
+<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#hostpathtype-v1-core"><code>core/v1.HostPathType</code></a>
 </td>
 <td>
    <p><code>pathType</code> is the type of the <code>hostPath</code>.</p>
@@ -1515,7 +1576,7 @@ This information will be annotated to the Node API object, for later re-use.</p>
 </td>
 </tr>
 <tr><td><code>taints</code> <B>[Required]</B><br/>
-<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#taint-v1-core"><code>[]core/v1.Taint</code></a>
+<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#taint-v1-core"><code>[]core/v1.Taint</code></a>
 </td>
 <td>
    <p><code>taints</code> specifies the taints the Node API object should be registered with.
@@ -1548,7 +1609,7 @@ Value 'all' ignores errors from all checks.</p>
 </td>
 </tr>
 <tr><td><code>imagePullPolicy</code><br/>
-<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#pullpolicy-v1-core"><code>core/v1.PullPolicy</code></a>
+<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#pullpolicy-v1-core"><code>core/v1.PullPolicy</code></a>
 </td>
 <td>
    <p><code>imagePullPolicy</code> specifies the policy for image pulling during kubeadm <code>init</code> and
@@ -1570,6 +1631,10 @@ images if not present on the host.</p>
 
 - [JoinConfiguration](#kubeadm-k8s-io-v1beta4-JoinConfiguration)
 
+- [UpgradeApplyConfiguration](#kubeadm-k8s-io-v1beta4-UpgradeApplyConfiguration)
+
+- [UpgradeNodeConfiguration](#kubeadm-k8s-io-v1beta4-UpgradeNodeConfiguration)
+
 
 <p>Patches contains options related to applying patches to components deployed by kubeadm.</p>
 
@@ -1622,4 +1687,352 @@ first alpha-numerically.</p>
 </tr>
 </tbody>
 </table>
+
+## `Timeouts`     {#kubeadm-k8s-io-v1beta4-Timeouts}
+    
+
+**Appears in:**
+
+- [UpgradeConfiguration](#kubeadm-k8s-io-v1beta4-UpgradeConfiguration)
+
+
+<p>Timeouts holds various timeouts that apply to kubeadm commands.</p>
+
+
+<table class="table">
+<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
+<tbody>
+    
+  
+<tr><td><code>controlPlaneComponentHealthCheck</code><br/>
+<a href="https://pkg.go.dev/k8s.io/apimachinery/pkg/apis/meta/v1#Duration"><code>meta/v1.Duration</code></a>
+</td>
+<td>
+   <p><code>controlPlaneComponentHealthCheck</code> is the amount of time to wait for a control plane
+component, such as the API server, to be healthy during <code>kubeadm init</code> and <code>kubeadm join</code>.
+Default: 4m</p>
+</td>
+</tr>
+<tr><td><code>kubeletHealthCheck</code><br/>
+<a href="https://pkg.go.dev/k8s.io/apimachinery/pkg/apis/meta/v1#Duration"><code>meta/v1.Duration</code></a>
+</td>
+<td>
+   <p><code>kubeletHealthCheck</code> is the amount of time to wait for the kubelet to be healthy
+during <code>kubeadm init</code> and <code>kubeadm join</code>.
+Default: 4m</p>
+</td>
+</tr>
+<tr><td><code>kubernetesAPICall</code><br/>
+<a href="https://pkg.go.dev/k8s.io/apimachinery/pkg/apis/meta/v1#Duration"><code>meta/v1.Duration</code></a>
+</td>
+<td>
+   <p><code>kubernetesAPICall</code> is the amount of time to wait for the kubeadm client to complete a request to
+the API server. This applies to all types of methods (GET, POST, etc).
+Default: 1m</p>
+</td>
+</tr>
+<tr><td><code>etcdAPICall</code><br/>
+<a href="https://pkg.go.dev/k8s.io/apimachinery/pkg/apis/meta/v1#Duration"><code>meta/v1.Duration</code></a>
+</td>
+<td>
+   <p><code>etcdAPICall</code> is the amount of time to wait for the kubeadm etcd client to complete a request to
+the etcd cluster.
+Default: 2m</p>
+</td>
+</tr>
+<tr><td><code>tlsBootstrap</code><br/>
+<a href="https://pkg.go.dev/k8s.io/apimachinery/pkg/apis/meta/v1#Duration"><code>meta/v1.Duration</code></a>
+</td>
+<td>
+   <p><code>tlsBootstrap</code> is the amount of time to wait for the kubelet to complete TLS bootstrap
+for a joining node.
+Default: 5m</p>
+</td>
+</tr>
+<tr><td><code>discovery</code><br/>
+<a href="https://pkg.go.dev/k8s.io/apimachinery/pkg/apis/meta/v1#Duration"><code>meta/v1.Duration</code></a>
+</td>
+<td>
+   <p><code>discovery</code> is the amount of time to wait for kubeadm to validate the API server identity
+for a joining node.
+Default: 5m</p>
+</td>
+</tr>
+<tr><td><code>upgradeManifests</code> <B>[Required]</B><br/>
+<a href="https://pkg.go.dev/k8s.io/apimachinery/pkg/apis/meta/v1#Duration"><code>meta/v1.Duration</code></a>
+</td>
+<td>
+   <p><code>upgradeManifests</code> is the timeout for upgradring static Pod manifests
+Default: 5m</p>
+</td>
+</tr>
+</tbody>
+</table>
+
+## `UpgradeApplyConfiguration`     {#kubeadm-k8s-io-v1beta4-UpgradeApplyConfiguration}
+    
+
+**Appears in:**
+
+- [UpgradeConfiguration](#kubeadm-k8s-io-v1beta4-UpgradeConfiguration)
+
+
+<p>UpgradeApplyConfiguration contains a list of configurable options which are specific to the  &quot;kubeadm upgrade apply&quot; command.</p>
+
+
+<table class="table">
+<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
+<tbody>
+    
+  
+<tr><td><code>kubernetesVersion</code><br/>
+<code>string</code>
+</td>
+<td>
+   <p><code>kubernetesVersion</code> is the target version of the control plane.</p>
+</td>
+</tr>
+<tr><td><code>allowExperimentalUpgrades</code><br/>
+<code>bool</code>
+</td>
+<td>
+   <p><code>allowExperimentalUpgrades</code> instructs kubeadm to show unstable versions of Kubernetes as an upgrade
+alternative and allows upgrading to an alpha/beta/release candidate version of Kubernetes.
+Default: false</p>
+</td>
+</tr>
+<tr><td><code>allowRCUpgrades</code><br/>
+<code>bool</code>
+</td>
+<td>
+   <p>Enable <code>allowRCUpgrades</code> will show release candidate versions of Kubernetes as an upgrade alternative and
+allows upgrading to a release candidate version of Kubernetes.</p>
+</td>
+</tr>
+<tr><td><code>certificateRenewal</code><br/>
+<code>bool</code>
+</td>
+<td>
+   <p><code>certificateRenewal</code> instructs kubeadm to execute certificate renewal during upgrades.
+Defaults to true.</p>
+</td>
+</tr>
+<tr><td><code>dryRun</code><br/>
+<code>bool</code>
+</td>
+<td>
+   <p><code>dryRun</code> tells if the dry run mode is enabled, don't apply any change if it is and just output
+what would be done.</p>
+</td>
+</tr>
+<tr><td><code>etcdUpgrade</code><br/>
+<code>bool</code>
+</td>
+<td>
+   <p><code>etcdUpgrade</code> instructs kubeadm to execute etcd upgrade during upgrades.
+Defaults to true.</p>
+</td>
+</tr>
+<tr><td><code>forceUpgrade</code><br/>
+<code>bool</code>
+</td>
+<td>
+   <p><code>forceUpgrade</code> flag instructs kubeadm to upgrade the cluster without prompting for confirmation.</p>
+</td>
+</tr>
+<tr><td><code>ignorePreflightErrors</code><br/>
+<code>[]string</code>
+</td>
+<td>
+   <p><code>ignorePreflightErrors</code> provides a slice of pre-flight errors to be ignored during the upgrade process,
+e.g. 'IsPrivilegedUser,Swap'. Value 'all' ignores errors from all checks.</p>
+</td>
+</tr>
+<tr><td><code>patches</code><br/>
+<a href="#kubeadm-k8s-io-v1beta4-Patches"><code>Patches</code></a>
+</td>
+<td>
+   <p><code>patches</code> contains options related to applying patches to components deployed by kubeadm during &quot;kubeadm upgrade&quot;.</p>
+</td>
+</tr>
+<tr><td><code>printConfig</code><br/>
+<code>bool</code>
+</td>
+<td>
+   <p><code>printConfig</code> specifies whether the configuration file that will be used in the upgrade should be printed or not.</p>
+</td>
+</tr>
+<tr><td><code>SkipPhases</code> <B>[Required]</B><br/>
+<code>[]string</code>
+</td>
+<td>
+   <p><code>skipPhases</code> is a list of phases to skip during command execution.
+NOTE: This field is currently ignored for &quot;kubeadm upgrade apply&quot;, but in the future it will be supported.</p>
+</td>
+</tr>
+</tbody>
+</table>
+
+## `UpgradeDiffConfiguration`     {#kubeadm-k8s-io-v1beta4-UpgradeDiffConfiguration}
+    
+
+**Appears in:**
+
+- [UpgradeConfiguration](#kubeadm-k8s-io-v1beta4-UpgradeConfiguration)
+
+
+<p>UpgradeDiffConfiguration contains a list of configurable options which are specific to the &quot;kubeadm upgrade diff&quot; command.</p>
+
+
+<table class="table">
+<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
+<tbody>
+    
+  
+<tr><td><code>kubernetesVersion</code><br/>
+<code>string</code>
+</td>
+<td>
+   <p><code>kubernetesVersion</code> is the target version of the control plane.</p>
+</td>
+</tr>
+<tr><td><code>contextLines</code><br/>
+<code>int</code>
+</td>
+<td>
+   <p><code>diffContextLines</code> is the number of lines of context in the diff.</p>
+</td>
+</tr>
+</tbody>
+</table>
+
+## `UpgradeNodeConfiguration`     {#kubeadm-k8s-io-v1beta4-UpgradeNodeConfiguration}
+    
+
+**Appears in:**
+
+- [UpgradeConfiguration](#kubeadm-k8s-io-v1beta4-UpgradeConfiguration)
+
+
+<p>UpgradeNodeConfiguration contains a list of configurable options which are specific to the &quot;kubeadm upgrade node&quot; command.</p>
+
+
+<table class="table">
+<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
+<tbody>
+    
+  
+<tr><td><code>certificateRenewal</code><br/>
+<code>bool</code>
+</td>
+<td>
+   <p><code>certificateRenewal</code> instructs kubeadm to execute certificate renewal during upgrades.
+Defaults to true.</p>
+</td>
+</tr>
+<tr><td><code>dryRun</code><br/>
+<code>bool</code>
+</td>
+<td>
+   <p><code>dryRun</code> tells if the dry run mode is enabled, don't apply any change if it is and just output what would be done.</p>
+</td>
+</tr>
+<tr><td><code>etcdUpgrade</code><br/>
+<code>bool</code>
+</td>
+<td>
+   <p><code>etcdUpgrade</code> instructs kubeadm to execute etcd upgrade during upgrades.
+Defaults to true.</p>
+</td>
+</tr>
+<tr><td><code>ignorePreflightErrors</code><br/>
+<code>[]string</code>
+</td>
+<td>
+   <p><code>ignorePreflightErrors</code> provides a slice of pre-flight errors to be ignored during the upgrade process,
+e.g. 'IsPrivilegedUser,Swap'. Value 'all' ignores errors from all checks.</p>
+</td>
+</tr>
+<tr><td><code>skipPhases</code><br/>
+<code>[]string</code>
+</td>
+<td>
+   <p><code>skipPhases</code> is a list of phases to skip during command execution.
+The list of phases can be obtained with the <code>kubeadm upgrade node phase --help</code> command.</p>
+</td>
+</tr>
+<tr><td><code>patches</code><br/>
+<a href="#kubeadm-k8s-io-v1beta4-Patches"><code>Patches</code></a>
+</td>
+<td>
+   <p><code>patches</code> contains options related to applying patches to components deployed by kubeadm during <code>kubeadm upgrade</code>.</p>
+</td>
+</tr>
+</tbody>
+</table>
+
+## `UpgradePlanConfiguration`     {#kubeadm-k8s-io-v1beta4-UpgradePlanConfiguration}
+    
+
+**Appears in:**
+
+- [UpgradeConfiguration](#kubeadm-k8s-io-v1beta4-UpgradeConfiguration)
+
+
+<p>UpgradePlanConfiguration contains a list of configurable options which are specific to the &quot;kubeadm upgrade plan&quot; command.</p>
+
+
+<table class="table">
+<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
+<tbody>
+    
+  
+<tr><td><code>kubernetesVersion</code> <B>[Required]</B><br/>
+<code>string</code>
+</td>
+<td>
+   <p><code>kubernetesVersion</code> is the target version of the control plane.</p>
+</td>
+</tr>
+<tr><td><code>allowExperimentalUpgrades</code><br/>
+<code>bool</code>
+</td>
+<td>
+   <p><code>allowExperimentalUpgrades</code> instructs kubeadm to show unstable versions of Kubernetes as an upgrade
+alternative and allows upgrading to an alpha/beta/release candidate version of Kubernetes.
+Default: false</p>
+</td>
+</tr>
+<tr><td><code>allowRCUpgrades</code><br/>
+<code>bool</code>
+</td>
+<td>
+   <p>Enable <code>allowRCUpgrades</code> will show release candidate versions of Kubernetes as an upgrade alternative and
+allows upgrading to a release candidate version of Kubernetes.</p>
+</td>
+</tr>
+<tr><td><code>dryRun</code><br/>
+<code>bool</code>
+</td>
+<td>
+   <p><code>dryRun</code> tells if the dry run mode is enabled, don't apply any change if it is and just output what would be done.</p>
+</td>
+</tr>
+<tr><td><code>ignorePreflightErrors</code><br/>
+<code>[]string</code>
+</td>
+<td>
+   <p><code>ignorePreflightErrors</code> provides a slice of pre-flight errors to be ignored during the upgrade process,
+e.g. 'IsPrivilegedUser,Swap'. Value 'all' ignores errors from all checks.</p>
+</td>
+</tr>
+<tr><td><code>printConfig</code><br/>
+<code>bool</code>
+</td>
+<td>
+   <p><code>printConfig</code> specifies whether the configuration file that will be used in the upgrade should be printed or not.</p>
+</td>
+</tr>
+</tbody>
+</table>
   
\ No newline at end of file
diff --git a/content/en/docs/reference/config-api/kubelet-config.v1beta1.md b/content/en/docs/reference/config-api/kubelet-config.v1beta1.md
index 2975657ccf..fccaa0770f 100644
--- a/content/en/docs/reference/config-api/kubelet-config.v1beta1.md
+++ b/content/en/docs/reference/config-api/kubelet-config.v1beta1.md
@@ -32,6 +32,14 @@ auto_generated: true
 <tbody>
     
   
+<tr><td><code>text</code> <B>[Required]</B><br/>
+<a href="#TextOptions"><code>TextOptions</code></a>
+</td>
+<td>
+   <p>[Alpha] Text contains options for logging format &quot;text&quot;.
+Only available when the LoggingAlphaOptions feature gate is enabled.</p>
+</td>
+</tr>
 <tr><td><code>json</code> <B>[Required]</B><br/>
 <a href="#JSONOptions"><code>JSONOptions</code></a>
 </td>
@@ -59,24 +67,11 @@ Only available when the LoggingAlphaOptions feature gate is enabled.</p>
 <tbody>
     
   
-<tr><td><code>splitStream</code> <B>[Required]</B><br/>
-<code>bool</code>
-</td>
-<td>
-   <p>[Alpha] SplitStream redirects error messages to stderr while
-info messages go to stdout, with buffering. The default is to write
-both to stdout, without buffering. Only available when
-the LoggingAlphaOptions feature gate is enabled.</p>
-</td>
-</tr>
-<tr><td><code>infoBufferSize</code> <B>[Required]</B><br/>
-<a href="https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#QuantityValue"><code>k8s.io/apimachinery/pkg/api/resource.QuantityValue</code></a>
-</td>
-<td>
-   <p>[Alpha] InfoBufferSize sets the size of the info stream when
-using split streams. The default is zero, which disables buffering.
-Only available when the LoggingAlphaOptions feature gate is enabled.</p>
+<tr><td><code>OutputRoutingOptions</code> <B>[Required]</B><br/>
+<a href="#OutputRoutingOptions"><code>OutputRoutingOptions</code></a>
 </td>
+<td>(Members of <code>OutputRoutingOptions</code> are embedded into this type.)
+   <span class="text-muted">No description provided.</span></td>
 </tr>
 </tbody>
 </table>
@@ -186,6 +181,71 @@ certain global defaults.</p>
 </tbody>
 </table>
 
+## `OutputRoutingOptions`     {#OutputRoutingOptions}
+    
+
+**Appears in:**
+
+- [JSONOptions](#JSONOptions)
+
+- [TextOptions](#TextOptions)
+
+
+<p>OutputRoutingOptions contains options that are supported by both &quot;text&quot; and &quot;json&quot;.</p>
+
+
+<table class="table">
+<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
+<tbody>
+    
+  
+<tr><td><code>splitStream</code> <B>[Required]</B><br/>
+<code>bool</code>
+</td>
+<td>
+   <p>[Alpha] SplitStream redirects error messages to stderr while
+info messages go to stdout, with buffering. The default is to write
+both to stdout, without buffering. Only available when
+the LoggingAlphaOptions feature gate is enabled.</p>
+</td>
+</tr>
+<tr><td><code>infoBufferSize</code> <B>[Required]</B><br/>
+<a href="https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#QuantityValue"><code>k8s.io/apimachinery/pkg/api/resource.QuantityValue</code></a>
+</td>
+<td>
+   <p>[Alpha] InfoBufferSize sets the size of the info stream when
+using split streams. The default is zero, which disables buffering.
+Only available when the LoggingAlphaOptions feature gate is enabled.</p>
+</td>
+</tr>
+</tbody>
+</table>
+
+## `TextOptions`     {#TextOptions}
+    
+
+**Appears in:**
+
+- [FormatOptions](#FormatOptions)
+
+
+<p>TextOptions contains options for logging format &quot;text&quot;.</p>
+
+
+<table class="table">
+<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
+<tbody>
+    
+  
+<tr><td><code>OutputRoutingOptions</code> <B>[Required]</B><br/>
+<a href="#OutputRoutingOptions"><code>OutputRoutingOptions</code></a>
+</td>
+<td>(Members of <code>OutputRoutingOptions</code> are embedded into this type.)
+   <span class="text-muted">No description provided.</span></td>
+</tr>
+</tbody>
+</table>
+
 ## `TimeOrMetaDuration`     {#TimeOrMetaDuration}
     
 
@@ -352,6 +412,16 @@ run, or the path to a single static pod file.
 Default: &quot;&quot;</p>
 </td>
 </tr>
+<tr><td><code>podLogsDir</code><br/>
+<code>string</code>
+</td>
+<td>
+   <p>podLogsDir is a custom root directory path kubelet will use to place pod's log files.
+Default: &quot;/var/log/pods/&quot;
+Note: it is not recommended to use the temp folder as a log directory as it may cause
+unexpected behavior in many places.</p>
+</td>
+</tr>
 <tr><td><code>syncFrequency</code><br/>
 <a href="https://pkg.go.dev/k8s.io/apimachinery/pkg/apis/meta/v1#Duration"><code>meta/v1.Duration</code></a>
 </td>
@@ -449,7 +519,7 @@ Default: &quot;&quot;</p>
 <td>
    <p>tlsCipherSuites is the list of allowed cipher suites for the server.
 Note that TLS 1.3 ciphersuites are not configurable.
-Values are from tls package constants (https://pkg.go.dev/crypto/tls#pkg-constants).
+Values are from tls package constants (https://golang.org/pkg/crypto/tls/#pkg-constants).
 Default: nil</p>
 </td>
 </tr>
@@ -458,7 +528,7 @@ Default: nil</p>
 </td>
 <td>
    <p>tlsMinVersion is the minimum TLS version supported.
-Values are from tls package constants (https://pkg.go.dev/crypto/tls#pkg-constants).
+Values are from tls package constants (https://golang.org/pkg/crypto/tls/#pkg-constants).
 Default: &quot;&quot;</p>
 </td>
 </tr>
@@ -1176,6 +1246,27 @@ be present for a container.
 Default: 5</p>
 </td>
 </tr>
+<tr><td><code>containerLogMaxWorkers</code><br/>
+<code>int32</code>
+</td>
+<td>
+   <p>ContainerLogMaxWorkers specifies the maximum number of concurrent workers to spawn
+for performing the log rotate operations. Set this count to 1 for disabling the
+concurrent log rotation workflows
+Default: 1</p>
+</td>
+</tr>
+<tr><td><code>containerLogMonitorInterval</code><br/>
+<a href="https://pkg.go.dev/k8s.io/apimachinery/pkg/apis/meta/v1#Duration"><code>meta/v1.Duration</code></a>
+</td>
+<td>
+   <p>ContainerLogMonitorInterval specifies the duration at which the container logs are monitored
+for performing the log rotate operation. This defaults to 10 * time.Seconds. But can be
+customized to a smaller value based on the log generation rate and the size required to be
+rotated against
+Default: 10s</p>
+</td>
+</tr>
 <tr><td><code>configMapAndSecretChangeDetectionStrategy</code><br/>
 <a href="#kubelet-config-k8s-io-v1beta1-ResourceChangeDetectionStrategy"><code>ResourceChangeDetectionStrategy</code></a>
 </td>
@@ -1458,7 +1549,7 @@ Default: 0.9</p>
 </td>
 </tr>
 <tr><td><code>registerWithTaints</code><br/>
-<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#taint-v1-core"><code>[]core/v1.Taint</code></a>
+<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#taint-v1-core"><code>[]core/v1.Taint</code></a>
 </td>
 <td>
    <p>registerWithTaints are an array of taints to add to a node object when
@@ -1538,7 +1629,7 @@ It exists in the kubeletconfig API group because it is classified as a versioned
     
   
 <tr><td><code>source</code><br/>
-<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#nodeconfigsource-v1-core"><code>core/v1.NodeConfigSource</code></a>
+<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#nodeconfigsource-v1-core"><code>core/v1.NodeConfigSource</code></a>
 </td>
 <td>
    <p>source is the source that we are serializing.</p>
@@ -1899,7 +1990,7 @@ and groups corresponding to the Organization in the client certificate.</p>
    <span class="text-muted">No description provided.</span></td>
 </tr>
 <tr><td><code>limits</code> <B>[Required]</B><br/>
-<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#resourcelist-v1-core"><code>core/v1.ResourceList</code></a>
+<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#resourcelist-v1-core"><code>core/v1.ResourceList</code></a>
 </td>
 <td>
    <span class="text-muted">No description provided.</span></td>
@@ -1926,8 +2017,8 @@ and groups corresponding to the Organization in the client certificate.</p>
 </td>
 <td>
    <p>swapBehavior configures swap memory available to container workloads. May be one of
-&quot;&quot;, &quot;LimitedSwap&quot;: workload combined memory and swap usage cannot exceed pod memory limit
-&quot;UnlimitedSwap&quot;: workloads can use unlimited swap, up to the allocatable limit.</p>
+&quot;&quot;, &quot;NoSwap&quot;: workloads can not use swap, default option.
+&quot;LimitedSwap&quot;: workload swap usage is limited. The swap limit is proportionate to the container's memory request.</p>
 </td>
 </tr>
 </tbody>
diff --git a/content/en/docs/tasks/administer-cluster/decrypt-data.md b/content/en/docs/tasks/administer-cluster/decrypt-data.md
index 2bf9b11f56..0278125cc3 100644
--- a/content/en/docs/tasks/administer-cluster/decrypt-data.md
+++ b/content/en/docs/tasks/administer-cluster/decrypt-data.md
@@ -163,4 +163,4 @@ Make sure that you use the same encryption configuration on each control plane h
 
 ## {{% heading "whatsnext" %}}
 
-* Learn more about the [EncryptionConfiguration configuration API (v1)](/docs/reference/config-api/apiserver-encryption.v1/).
+* Learn more about the [EncryptionConfiguration configuration API (v1)](/docs/reference/config-api/apiserver-config.v1/).
diff --git a/content/en/docs/tasks/administer-cluster/encrypt-data.md b/content/en/docs/tasks/administer-cluster/encrypt-data.md
index 6e7a05ef09..78d92d7fbc 100644
--- a/content/en/docs/tasks/administer-cluster/encrypt-data.md
+++ b/content/en/docs/tasks/administer-cluster/encrypt-data.md
@@ -715,4 +715,4 @@ To allow automatic reloading, configure the API server to run with:
 ## {{% heading "whatsnext" %}}
 
 * Read about [decrypting data that are already stored at rest](/docs/tasks/administer-cluster/decrypt-data/)
-* Learn more about the [EncryptionConfiguration configuration API (v1)](/docs/reference/config-api/apiserver-encryption.v1/).
+* Learn more about the [EncryptionConfiguration configuration API (v1)](/docs/reference/config-api/apiserver-config.v1/).