Updated config API for v1.29
This commit is contained in:
parent
751ec134c4
commit
7451649920
|
|
@ -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.28/#userinfo-v1-authentication-k8s-io"><code>authentication/v1.UserInfo</code></a>
|
||||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#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.28/#status-v1-meta"><code>meta/v1.Status</code></a>
|
||||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#status-v1-meta"><code>meta/v1.Status</code></a>
|
||||
</td>
|
||||
<td>
|
||||
<p>Result contains extra details into why an admission request was denied.
|
||||
|
|
|
|||
|
|
@ -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.28/#userinfo-v1-authentication-k8s-io"><code>authentication/v1.UserInfo</code></a>
|
||||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#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.28/#userinfo-v1-authentication-k8s-io"><code>authentication/v1.UserInfo</code></a>
|
||||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#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.28/#status-v1-meta"><code>meta/v1.Status</code></a>
|
||||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#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.28/#microtime-v1-meta"><code>meta/v1.MicroTime</code></a>
|
||||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#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.28/#microtime-v1-meta"><code>meta/v1.MicroTime</code></a>
|
||||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#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.28/#listmeta-v1-meta"><code>meta/v1.ListMeta</code></a>
|
||||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#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.28/#objectmeta-v1-meta"><code>meta/v1.ObjectMeta</code></a>
|
||||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#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.28/#listmeta-v1-meta"><code>meta/v1.ListMeta</code></a>
|
||||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#listmeta-v1-meta"><code>meta/v1.ListMeta</code></a>
|
||||
</td>
|
||||
<td>
|
||||
<span class="text-muted">No description provided.</span></td>
|
||||
|
|
@ -321,12 +321,14 @@ The empty string represents the core API group.</p>
|
|||
</td>
|
||||
<td>
|
||||
<p>Resources is a list of resources this rule applies to.</p>
|
||||
<p>For example:
|
||||
'pods' matches pods.
|
||||
'pods/log' matches the log subresource of pods.
|
||||
'*' matches all resources and their subresources.
|
||||
'pods/*' matches all subresources of pods.
|
||||
'*/scale' matches all scale subresources.</p>
|
||||
<p>For example:</p>
|
||||
<ul>
|
||||
<li><code>pods</code> matches pods.</li>
|
||||
<li><code>pods/log</code> matches the log subresource of pods.</li>
|
||||
<li><code>*</code> matches all resources and their subresources.</li>
|
||||
<li><code>pods/*</code> matches all subresources of pods.</li>
|
||||
<li><code>*/scale</code> matches all scale subresources.</li>
|
||||
</ul>
|
||||
<p>If wildcard is present, the validation rule will ensure resources do not
|
||||
overlap with each other.</p>
|
||||
<p>An empty list implies all resources and subresources in this API groups apply.</p>
|
||||
|
|
@ -500,10 +502,12 @@ An empty list implies every namespace.</p>
|
|||
</td>
|
||||
<td>
|
||||
<p>NonResourceURLs is a set of URL paths that should be audited.
|
||||
*s are allowed, but only as the full, final step in the path.
|
||||
Examples:
|
||||
"/metrics" - Log requests for apiserver metrics
|
||||
"/healthz*" - Log all health checks</p>
|
||||
<code>*</code>s are allowed, but only as the full, final step in the path.
|
||||
Examples:</p>
|
||||
<ul>
|
||||
<li><code>/metrics</code> - Log requests for apiserver metrics</li>
|
||||
<li><code>/healthz*</code> - Log all health checks</li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>omitStages</code><br/>
|
||||
|
|
@ -551,4 +555,4 @@ Policy.OmitManagedFields will stand.</li>
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -11,6 +11,8 @@ auto_generated: true
|
|||
|
||||
|
||||
- [AdmissionConfiguration](#apiserver-k8s-io-v1alpha1-AdmissionConfiguration)
|
||||
- [AuthenticationConfiguration](#apiserver-k8s-io-v1alpha1-AuthenticationConfiguration)
|
||||
- [AuthorizationConfiguration](#apiserver-k8s-io-v1alpha1-AuthorizationConfiguration)
|
||||
- [EgressSelectorConfiguration](#apiserver-k8s-io-v1alpha1-EgressSelectorConfiguration)
|
||||
- [TracingConfiguration](#apiserver-k8s-io-v1alpha1-TracingConfiguration)
|
||||
|
||||
|
|
@ -82,6 +84,67 @@ rate, but otherwise never samples.</p>
|
|||
</tbody>
|
||||
</table>
|
||||
|
||||
## `AuthenticationConfiguration` {#apiserver-k8s-io-v1alpha1-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/v1alpha1</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-v1alpha1-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>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
## `AuthorizationConfiguration` {#apiserver-k8s-io-v1alpha1-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/v1alpha1</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-v1alpha1-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-v1alpha1-EgressSelectorConfiguration}
|
||||
|
||||
|
||||
|
|
@ -175,6 +238,249 @@ configuration. If present, it will be used instead of the path to the configurat
|
|||
</tbody>
|
||||
</table>
|
||||
|
||||
## `AuthorizerConfiguration` {#apiserver-k8s-io-v1alpha1-AuthorizerConfiguration}
|
||||
|
||||
|
||||
**Appears in:**
|
||||
|
||||
- [AuthorizationConfiguration](#apiserver-k8s-io-v1alpha1-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
|
||||
"Webhook" 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-v1alpha1-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-v1alpha1-ClaimMappings}
|
||||
|
||||
|
||||
**Appears in:**
|
||||
|
||||
- [JWTAuthenticator](#apiserver-k8s-io-v1alpha1-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-v1alpha1-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.</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 "sub". 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="sub" in the authentication config.
|
||||
For prefix:
|
||||
(1) --oidc-username-prefix="-", no prefix was added to the username. For the same behavior using authentication config,
|
||||
set username.prefix=""
|
||||
(2) --oidc-username-prefix="" and --oidc-username-claim != "email", prefix was "<value of --oidc-issuer-url>#". For the same
|
||||
behavior using authentication config, set username.prefix="<!-- raw HTML omitted -->#"
|
||||
(3) --oidc-username-prefix="<!-- raw HTML omitted -->". For the same behavior using authentication config, set username.prefix="<!-- raw HTML omitted -->"</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>groups</code><br/>
|
||||
<a href="#apiserver-k8s-io-v1alpha1-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.
|
||||
"", [], 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-v1alpha1-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-v1alpha1-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: "foo"
|
||||
valueExpression: "'bar'"
|
||||
This will result in an extra attribute - foo: ["bar"]</li>
|
||||
</ul>
|
||||
<p>hard-coded key, value copying claim value</p>
|
||||
<ul>
|
||||
<li>key: "foo"
|
||||
valueExpression: "claims.some_claim"
|
||||
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: "admin"
|
||||
valueExpression: '(has(claims.is_admin) && claims.is_admin) ? "true":""'
|
||||
This will result in:</li>
|
||||
<li>if is_admin claim is present and true, extra attribute - admin: ["true"]</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-v1alpha1-ClaimOrExpression}
|
||||
|
||||
|
||||
**Appears in:**
|
||||
|
||||
- [ClaimMappings](#apiserver-k8s-io-v1alpha1-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.email.verified'.</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-v1alpha1-ClaimValidationRule}
|
||||
|
||||
|
||||
**Appears in:**
|
||||
|
||||
- [JWTAuthenticator](#apiserver-k8s-io-v1alpha1-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.email.verified'.
|
||||
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-v1alpha1-Connection}
|
||||
|
||||
|
||||
|
|
@ -244,6 +550,205 @@ The "master" egress selector is deprecated in favor of "controlpl
|
|||
</tbody>
|
||||
</table>
|
||||
|
||||
## `ExtraMapping` {#apiserver-k8s-io-v1alpha1-ExtraMapping}
|
||||
|
||||
|
||||
**Appears in:**
|
||||
|
||||
- [ClaimMappings](#apiserver-k8s-io-v1alpha1-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 "/" must be a valid
|
||||
subdomain as defined by RFC 1123. All characters trailing the first "/" must
|
||||
be valid HTTP Path characters as defined by RFC 3986.
|
||||
key must be lowercase.</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.
|
||||
"", [], 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.email.verified'.</li>
|
||||
</ul>
|
||||
<p>Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
## `Issuer` {#apiserver-k8s-io-v1alpha1-Issuer}
|
||||
|
||||
|
||||
**Appears in:**
|
||||
|
||||
- [JWTAuthenticator](#apiserver-k8s-io-v1alpha1-JWTAuthenticator)
|
||||
|
||||
|
||||
<p>Issuer provides the configuration for a external provider 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 "iss" 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.
|
||||
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 "aud" 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>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
## `JWTAuthenticator` {#apiserver-k8s-io-v1alpha1-JWTAuthenticator}
|
||||
|
||||
|
||||
**Appears in:**
|
||||
|
||||
- [AuthenticationConfiguration](#apiserver-k8s-io-v1alpha1-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-v1alpha1-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-v1alpha1-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-v1alpha1-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-v1alpha1-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-v1alpha1-PrefixedClaimOrExpression}
|
||||
|
||||
|
||||
**Appears in:**
|
||||
|
||||
- [ClaimMappings](#apiserver-k8s-io-v1alpha1-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.email.verified'.</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-v1alpha1-ProtocolType}
|
||||
|
||||
(Alias of `string`)
|
||||
|
|
@ -401,4 +906,224 @@ This does not use a unix:// prefix. (Eg: /etc/srv/kubernetes/konnectivity-server
|
|||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
## `UserValidationRule` {#apiserver-k8s-io-v1alpha1-UserValidationRule}
|
||||
|
||||
|
||||
**Appears in:**
|
||||
|
||||
- [JWTAuthenticator](#apiserver-k8s-io-v1alpha1-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-v1alpha1-WebhookConfiguration}
|
||||
|
||||
|
||||
**Appears in:**
|
||||
|
||||
- [AuthorizerConfiguration](#apiserver-k8s-io-v1alpha1-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-v1alpha1-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-v1alpha1-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-v1alpha1-WebhookConnectionInfo}
|
||||
|
||||
|
||||
**Appears in:**
|
||||
|
||||
- [WebhookConfiguration](#apiserver-k8s-io-v1alpha1-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-v1alpha1-WebhookMatchCondition}
|
||||
|
||||
|
||||
**Appears in:**
|
||||
|
||||
- [WebhookConfiguration](#apiserver-k8s-io-v1alpha1-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>
|
||||
|
||||
|
|
@ -19,8 +19,8 @@ auto_generated: true
|
|||
|
||||
<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 '*<group>o encrypt all resources within a group or '*.*' to encrypt all resources.
|
||||
'*.' can be used to encrypt all resource in the core group. '*.*' will encrypt all
|
||||
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.
|
||||
|
|
@ -282,9 +282,9 @@ Set to a negative value to disable caching. This field is only allowed for KMS v
|
|||
<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 '*.*' to encrypt all resources and '*.<group>' to encrypt all resources in a specific group.
|
||||
eg: '*.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>
|
||||
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/>
|
||||
|
|
@ -324,4 +324,4 @@ Each key has to be 32 bytes long.</p>
|
|||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
|
|
@ -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.28/#time-v1-meta"><code>meta/v1.Time</code></a>
|
||||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#time-v1-meta"><code>meta/v1.Time</code></a>
|
||||
</td>
|
||||
<td>
|
||||
<p>ExpirationTimestamp indicates a time when the provided credentials expire.</p>
|
||||
|
|
|
|||
|
|
@ -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.28/#time-v1-meta"><code>meta/v1.Time</code></a>
|
||||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#time-v1-meta"><code>meta/v1.Time</code></a>
|
||||
</td>
|
||||
<td>
|
||||
<p>ExpirationTimestamp indicates a time when the provided credentials expire.</p>
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ auto_generated: true
|
|||
|
||||
|
||||
<tr><td><code>metadata</code><br/>
|
||||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectmeta-v1-meta"><code>meta/v1.ObjectMeta</code></a>
|
||||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#objectmeta-v1-meta"><code>meta/v1.ObjectMeta</code></a>
|
||||
</td>
|
||||
<td>
|
||||
<p>Standard object's metadata.
|
||||
|
|
|
|||
|
|
@ -21,8 +21,6 @@ auto_generated: true
|
|||
|
||||
- [KubeProxyConfiguration](#kubeproxy-config-k8s-io-v1alpha1-KubeProxyConfiguration)
|
||||
|
||||
- [KubeSchedulerConfiguration](#kubescheduler-config-k8s-io-v1beta3-KubeSchedulerConfiguration)
|
||||
|
||||
- [KubeSchedulerConfiguration](#kubescheduler-config-k8s-io-v1-KubeSchedulerConfiguration)
|
||||
|
||||
- [GenericControllerManagerConfiguration](#controllermanager-config-k8s-io-v1alpha1-GenericControllerManagerConfiguration)
|
||||
|
|
@ -81,8 +79,6 @@ client.</p>
|
|||
|
||||
**Appears in:**
|
||||
|
||||
- [KubeSchedulerConfiguration](#kubescheduler-config-k8s-io-v1beta3-KubeSchedulerConfiguration)
|
||||
|
||||
- [KubeSchedulerConfiguration](#kubescheduler-config-k8s-io-v1-KubeSchedulerConfiguration)
|
||||
|
||||
- [GenericControllerManagerConfiguration](#controllermanager-config-k8s-io-v1alpha1-GenericControllerManagerConfiguration)
|
||||
|
|
@ -119,8 +115,6 @@ enableProfiling is true.</p>
|
|||
|
||||
**Appears in:**
|
||||
|
||||
- [KubeSchedulerConfiguration](#kubescheduler-config-k8s-io-v1beta3-KubeSchedulerConfiguration)
|
||||
|
||||
- [KubeSchedulerConfiguration](#kubescheduler-config-k8s-io-v1-KubeSchedulerConfiguration)
|
||||
|
||||
- [GenericControllerManagerConfiguration](#controllermanager-config-k8s-io-v1alpha1-GenericControllerManagerConfiguration)
|
||||
|
|
@ -226,35 +220,66 @@ Kubernetes proxy server.</p>
|
|||
<p>featureGates is a map of feature names to bools that enable or disable alpha/experimental features.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>clientConnection</code> <B>[Required]</B><br/>
|
||||
<a href="#ClientConnectionConfiguration"><code>ClientConnectionConfiguration</code></a>
|
||||
</td>
|
||||
<td>
|
||||
<p>clientConnection specifies the kubeconfig file and client connection settings for the proxy
|
||||
server to use when communicating with the apiserver.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>logging</code> <B>[Required]</B><br/>
|
||||
<a href="#LoggingConfiguration"><code>LoggingConfiguration</code></a>
|
||||
</td>
|
||||
<td>
|
||||
<p>logging specifies the options of logging.
|
||||
Refer to <a href="https://github.com/kubernetes/component-base/blob/master/logs/options.go">Logs Options</a>
|
||||
for more information.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>hostnameOverride</code> <B>[Required]</B><br/>
|
||||
<code>string</code>
|
||||
</td>
|
||||
<td>
|
||||
<p>hostnameOverride, if non-empty, will be used as the name of the Node that
|
||||
kube-proxy is running on. If unset, the node name is assumed to be the same as
|
||||
the node's hostname.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>bindAddress</code> <B>[Required]</B><br/>
|
||||
<code>string</code>
|
||||
</td>
|
||||
<td>
|
||||
<p>bindAddress is the IP address for the proxy server to serve on (set to 0.0.0.0
|
||||
for all interfaces)</p>
|
||||
<p>bindAddress can be used to override kube-proxy's idea of what its node's
|
||||
primary IP is. Note that the name is a historical artifact, and kube-proxy does
|
||||
not actually bind any sockets to this IP.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>healthzBindAddress</code> <B>[Required]</B><br/>
|
||||
<code>string</code>
|
||||
</td>
|
||||
<td>
|
||||
<p>healthzBindAddress is the IP address and port for the health check server to serve on,
|
||||
defaulting to 0.0.0.0:10256</p>
|
||||
<p>healthzBindAddress is the IP address and port for the health check server to
|
||||
serve on, defaulting to "0.0.0.0:10256" (if bindAddress is unset or IPv4), or
|
||||
"[::]:10256" (if bindAddress is IPv6).</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>metricsBindAddress</code> <B>[Required]</B><br/>
|
||||
<code>string</code>
|
||||
</td>
|
||||
<td>
|
||||
<p>metricsBindAddress is the IP address and port for the metrics server to serve on,
|
||||
defaulting to 127.0.0.1:10249 (set to 0.0.0.0 for all interfaces)</p>
|
||||
<p>metricsBindAddress is the IP address and port for the metrics server to serve
|
||||
on, defaulting to "127.0.0.1:10249" (if bindAddress is unset or IPv4), or
|
||||
"[::1]:10249" (if bindAddress is IPv6). (Set to "0.0.0.0:10249" / "[::]:10249"
|
||||
to bind on all interfaces.)</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>bindAddressHardFail</code> <B>[Required]</B><br/>
|
||||
<code>bool</code>
|
||||
</td>
|
||||
<td>
|
||||
<p>bindAddressHardFail, if true, kube-proxy will treat failure to bind to a port as fatal and exit</p>
|
||||
<p>bindAddressHardFail, if true, tells kube-proxy to treat failure to bind to a
|
||||
port as fatal and exit</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>enableProfiling</code> <B>[Required]</B><br/>
|
||||
|
|
@ -265,28 +290,18 @@ defaulting to 127.0.0.1:10249 (set to 0.0.0.0 for all interfaces)</p>
|
|||
Profiling handlers will be handled by metrics server.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>clusterCIDR</code> <B>[Required]</B><br/>
|
||||
<tr><td><code>showHiddenMetricsForVersion</code> <B>[Required]</B><br/>
|
||||
<code>string</code>
|
||||
</td>
|
||||
<td>
|
||||
<p>clusterCIDR is the CIDR range of the pods in the cluster. It is used to
|
||||
bridge traffic coming from outside of the cluster. If not provided,
|
||||
no off-cluster bridging will be performed.</p>
|
||||
<p>showHiddenMetricsForVersion is the version for which you want to show hidden metrics.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>hostnameOverride</code> <B>[Required]</B><br/>
|
||||
<code>string</code>
|
||||
<tr><td><code>mode</code> <B>[Required]</B><br/>
|
||||
<a href="#kubeproxy-config-k8s-io-v1alpha1-ProxyMode"><code>ProxyMode</code></a>
|
||||
</td>
|
||||
<td>
|
||||
<p>hostnameOverride, if non-empty, will be used as the identity instead of the actual hostname.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>clientConnection</code> <B>[Required]</B><br/>
|
||||
<a href="#ClientConnectionConfiguration"><code>ClientConnectionConfiguration</code></a>
|
||||
</td>
|
||||
<td>
|
||||
<p>clientConnection specifies the kubeconfig file and client connection settings for the proxy
|
||||
server to use when communicating with the apiserver.</p>
|
||||
<p>mode specifies which proxy mode to use.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>iptables</code> <B>[Required]</B><br/>
|
||||
|
|
@ -303,6 +318,55 @@ server to use when communicating with the apiserver.</p>
|
|||
<p>ipvs contains ipvs-related configuration options.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>nftables</code> <B>[Required]</B><br/>
|
||||
<a href="#kubeproxy-config-k8s-io-v1alpha1-KubeProxyNFTablesConfiguration"><code>KubeProxyNFTablesConfiguration</code></a>
|
||||
</td>
|
||||
<td>
|
||||
<p>nftables contains nftables-related configuration options.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>winkernel</code> <B>[Required]</B><br/>
|
||||
<a href="#kubeproxy-config-k8s-io-v1alpha1-KubeProxyWinkernelConfiguration"><code>KubeProxyWinkernelConfiguration</code></a>
|
||||
</td>
|
||||
<td>
|
||||
<p>winkernel contains winkernel-related configuration options.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>detectLocalMode</code> <B>[Required]</B><br/>
|
||||
<a href="#kubeproxy-config-k8s-io-v1alpha1-LocalMode"><code>LocalMode</code></a>
|
||||
</td>
|
||||
<td>
|
||||
<p>detectLocalMode determines mode to use for detecting local traffic, defaults to LocalModeClusterCIDR</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>detectLocal</code> <B>[Required]</B><br/>
|
||||
<a href="#kubeproxy-config-k8s-io-v1alpha1-DetectLocalConfiguration"><code>DetectLocalConfiguration</code></a>
|
||||
</td>
|
||||
<td>
|
||||
<p>detectLocal contains optional configuration settings related to DetectLocalMode.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>clusterCIDR</code> <B>[Required]</B><br/>
|
||||
<code>string</code>
|
||||
</td>
|
||||
<td>
|
||||
<p>clusterCIDR is the CIDR range of the pods in the cluster. (For dual-stack
|
||||
clusters, this can be a comma-separated dual-stack pair of CIDR ranges.). When
|
||||
DetectLocalMode is set to LocalModeClusterCIDR, kube-proxy will consider
|
||||
traffic to be local if its source IP is in this range. (Otherwise it is not
|
||||
used.)</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>nodePortAddresses</code> <B>[Required]</B><br/>
|
||||
<code>[]string</code>
|
||||
</td>
|
||||
<td>
|
||||
<p>nodePortAddresses is a list of CIDR ranges that contain valid node IPs. If set,
|
||||
connections to NodePort services will only be accepted on node IPs in one of
|
||||
the indicated ranges. If unset, NodePort connections will be accepted on all
|
||||
local IPs.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>oomScoreAdj</code> <B>[Required]</B><br/>
|
||||
<code>int32</code>
|
||||
</td>
|
||||
|
|
@ -311,21 +375,6 @@ server to use when communicating with the apiserver.</p>
|
|||
the range [-1000, 1000]</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>mode</code> <B>[Required]</B><br/>
|
||||
<a href="#kubeproxy-config-k8s-io-v1alpha1-ProxyMode"><code>ProxyMode</code></a>
|
||||
</td>
|
||||
<td>
|
||||
<p>mode specifies which proxy mode to use.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>portRange</code> <B>[Required]</B><br/>
|
||||
<code>string</code>
|
||||
</td>
|
||||
<td>
|
||||
<p>portRange is the range of host ports (beginPort-endPort, inclusive) that may be consumed
|
||||
in order to proxy service traffic. If unspecified (0-0) then ports will be randomly chosen.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>conntrack</code> <B>[Required]</B><br/>
|
||||
<a href="#kubeproxy-config-k8s-io-v1alpha1-KubeProxyConntrackConfiguration"><code>KubeProxyConntrackConfiguration</code></a>
|
||||
</td>
|
||||
|
|
@ -341,54 +390,11 @@ in order to proxy service traffic. If unspecified (0-0) then ports will be rando
|
|||
than 0.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>nodePortAddresses</code> <B>[Required]</B><br/>
|
||||
<code>[]string</code>
|
||||
</td>
|
||||
<td>
|
||||
<p>nodePortAddresses is the --nodeport-addresses value for kube-proxy process. Values must be valid
|
||||
IP blocks. These values are as a parameter to select the interfaces where nodeport works.
|
||||
In case someone would like to expose a service on localhost for local visit and some other interfaces for
|
||||
particular purpose, a list of IP blocks would do that.
|
||||
If set it to "127.0.0.0/8", kube-proxy will only select the loopback interface for NodePort.
|
||||
If set it to a non-zero IP block, kube-proxy will filter that down to just the IPs that applied to the node.
|
||||
An empty string slice is meant to select all network interfaces.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>winkernel</code> <B>[Required]</B><br/>
|
||||
<a href="#kubeproxy-config-k8s-io-v1alpha1-KubeProxyWinkernelConfiguration"><code>KubeProxyWinkernelConfiguration</code></a>
|
||||
</td>
|
||||
<td>
|
||||
<p>winkernel contains winkernel-related configuration options.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>showHiddenMetricsForVersion</code> <B>[Required]</B><br/>
|
||||
<tr><td><code>portRange</code> <B>[Required]</B><br/>
|
||||
<code>string</code>
|
||||
</td>
|
||||
<td>
|
||||
<p>ShowHiddenMetricsForVersion is the version for which you want to show hidden metrics.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>detectLocalMode</code> <B>[Required]</B><br/>
|
||||
<a href="#kubeproxy-config-k8s-io-v1alpha1-LocalMode"><code>LocalMode</code></a>
|
||||
</td>
|
||||
<td>
|
||||
<p>DetectLocalMode determines mode to use for detecting local traffic, defaults to LocalModeClusterCIDR</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>detectLocal</code> <B>[Required]</B><br/>
|
||||
<a href="#kubeproxy-config-k8s-io-v1alpha1-DetectLocalConfiguration"><code>DetectLocalConfiguration</code></a>
|
||||
</td>
|
||||
<td>
|
||||
<p>DetectLocal contains optional configuration settings related to DetectLocalMode.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>logging</code> <B>[Required]</B><br/>
|
||||
<a href="#LoggingConfiguration"><code>LoggingConfiguration</code></a>
|
||||
</td>
|
||||
<td>
|
||||
<p>logging specifies the options of logging.
|
||||
Refer to <a href="https://github.com/kubernetes/component-base/blob/master/logs/options.go">Logs Options</a>
|
||||
for more information.</p>
|
||||
<p>portRange was previously used to configure the userspace proxy, but is now unused.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
|
@ -414,18 +420,18 @@ for more information.</p>
|
|||
<code>string</code>
|
||||
</td>
|
||||
<td>
|
||||
<p>BridgeInterface is a string argument which represents a single bridge interface name.
|
||||
Kube-proxy considers traffic as local if originating from this given bridge.
|
||||
This argument should be set if DetectLocalMode is set to LocalModeBridgeInterface.</p>
|
||||
<p>bridgeInterface is a bridge interface name. When DetectLocalMode is set to
|
||||
LocalModeBridgeInterface, kube-proxy will consider traffic to be local if
|
||||
it originates from this bridge.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>interfaceNamePrefix</code> <B>[Required]</B><br/>
|
||||
<code>string</code>
|
||||
</td>
|
||||
<td>
|
||||
<p>InterfaceNamePrefix is a string argument which represents a single interface prefix name.
|
||||
Kube-proxy considers traffic as local if originating from one or more interfaces which match
|
||||
the given prefix. This argument should be set if DetectLocalMode is set to LocalModeInterfaceNamePrefix.</p>
|
||||
<p>interfaceNamePrefix is an interface name prefix. When DetectLocalMode is set to
|
||||
LocalModeInterfaceNamePrefix, kube-proxy will consider traffic to be local if
|
||||
it originates from any interface whose name begins with this prefix.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
|
@ -461,7 +467,7 @@ per CPU core (0 to leave the limit as-is and ignore min).</p>
|
|||
</td>
|
||||
<td>
|
||||
<p>min is the minimum value of connect-tracking records to allocate,
|
||||
regardless of conntrackMaxPerCore (set maxPerCore=0 to leave the limit as-is).</p>
|
||||
regardless of maxPerCore (set maxPerCore=0 to leave the limit as-is).</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>tcpEstablishedTimeout</code> <B>[Required]</B><br/>
|
||||
|
|
@ -481,6 +487,33 @@ in CLOSE_WAIT state will remain in the conntrack
|
|||
table. (e.g. '60s'). Must be greater than 0 to set.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>tcpBeLiberal</code> <B>[Required]</B><br/>
|
||||
<code>bool</code>
|
||||
</td>
|
||||
<td>
|
||||
<p>tcpBeLiberal, if true, kube-proxy will configure conntrack
|
||||
to run in liberal mode for TCP connections and packets with
|
||||
out-of-window sequence numbers won't be marked INVALID.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>udpTimeout</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>udpTimeout is how long an idle UDP conntrack entry in
|
||||
UNREPLIED state will remain in the conntrack table
|
||||
(e.g. '30s'). Must be greater than 0 to set.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>udpStreamTimeout</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>udpStreamTimeout is how long an idle UDP conntrack entry in
|
||||
ASSURED state will remain in the conntrack table
|
||||
(e.g. '300s'). Must be greater than 0 to set.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
|
@ -506,38 +539,44 @@ details for the Kubernetes proxy server.</p>
|
|||
</td>
|
||||
<td>
|
||||
<p>masqueradeBit is the bit of the iptables fwmark space to use for SNAT if using
|
||||
the pure iptables proxy mode. Values must be within the range [0, 31].</p>
|
||||
the iptables or ipvs proxy mode. Values must be within the range [0, 31].</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>masqueradeAll</code> <B>[Required]</B><br/>
|
||||
<code>bool</code>
|
||||
</td>
|
||||
<td>
|
||||
<p>masqueradeAll tells kube-proxy to SNAT everything if using the pure iptables proxy mode.</p>
|
||||
<p>masqueradeAll tells kube-proxy to SNAT all traffic sent to Service cluster IPs,
|
||||
when using the iptables or ipvs proxy mode. This may be required with some CNI
|
||||
plugins.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>localhostNodePorts</code> <B>[Required]</B><br/>
|
||||
<code>bool</code>
|
||||
</td>
|
||||
<td>
|
||||
<p>LocalhostNodePorts tells kube-proxy to allow service NodePorts to be accessed via
|
||||
localhost (iptables mode only)</p>
|
||||
<p>localhostNodePorts, if false, tells kube-proxy to disable the legacy behavior
|
||||
of allowing NodePort services to be accessed via localhost. (Applies only to
|
||||
iptables mode and IPv4; localhost NodePorts are never allowed with other proxy
|
||||
modes or with IPv6.)</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>syncPeriod</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>syncPeriod is the period that iptables rules are refreshed (e.g. '5s', '1m',
|
||||
'2h22m'). Must be greater than 0.</p>
|
||||
<p>syncPeriod is an interval (e.g. '5s', '1m', '2h22m') indicating how frequently
|
||||
various re-synchronizing and cleanup operations are performed. Must be greater
|
||||
than 0.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>minSyncPeriod</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>minSyncPeriod is the minimum period that iptables rules are refreshed (e.g. '5s', '1m',
|
||||
'2h22m').</p>
|
||||
<p>minSyncPeriod is the minimum period between iptables rule resyncs (e.g. '5s',
|
||||
'1m', '2h22m'). A value of 0 means every Service or EndpointSlice change will
|
||||
result in an immediate iptables resync.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
|
@ -564,30 +603,32 @@ details for the Kubernetes proxy server.</p>
|
|||
<a href="https://pkg.go.dev/k8s.io/apimachinery/pkg/apis/meta/v1#Duration"><code>meta/v1.Duration</code></a>
|
||||
</td>
|
||||
<td>
|
||||
<p>syncPeriod is the period that ipvs rules are refreshed (e.g. '5s', '1m',
|
||||
'2h22m'). Must be greater than 0.</p>
|
||||
<p>syncPeriod is an interval (e.g. '5s', '1m', '2h22m') indicating how frequently
|
||||
various re-synchronizing and cleanup operations are performed. Must be greater
|
||||
than 0.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>minSyncPeriod</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>minSyncPeriod is the minimum period that ipvs rules are refreshed (e.g. '5s', '1m',
|
||||
'2h22m').</p>
|
||||
<p>minSyncPeriod is the minimum period between IPVS rule resyncs (e.g. '5s', '1m',
|
||||
'2h22m'). A value of 0 means every Service or EndpointSlice change will result
|
||||
in an immediate IPVS resync.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>scheduler</code> <B>[Required]</B><br/>
|
||||
<code>string</code>
|
||||
</td>
|
||||
<td>
|
||||
<p>ipvs scheduler</p>
|
||||
<p>scheduler is the IPVS scheduler to use</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>excludeCIDRs</code> <B>[Required]</B><br/>
|
||||
<code>[]string</code>
|
||||
</td>
|
||||
<td>
|
||||
<p>excludeCIDRs is a list of CIDR's which the ipvs proxier should not touch
|
||||
<p>excludeCIDRs is a list of CIDRs which the ipvs proxier should not touch
|
||||
when cleaning up ipvs services.</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -595,7 +636,7 @@ when cleaning up ipvs services.</p>
|
|||
<code>bool</code>
|
||||
</td>
|
||||
<td>
|
||||
<p>strict ARP configure arp_ignore and arp_announce to avoid answering ARP queries
|
||||
<p>strictARP configures arp_ignore and arp_announce to avoid answering ARP queries
|
||||
from kube-ipvs0 interface</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -626,6 +667,60 @@ The default value is 0, which preserves the current timeout value on the system.
|
|||
</tbody>
|
||||
</table>
|
||||
|
||||
## `KubeProxyNFTablesConfiguration` {#kubeproxy-config-k8s-io-v1alpha1-KubeProxyNFTablesConfiguration}
|
||||
|
||||
|
||||
**Appears in:**
|
||||
|
||||
- [KubeProxyConfiguration](#kubeproxy-config-k8s-io-v1alpha1-KubeProxyConfiguration)
|
||||
|
||||
|
||||
<p>KubeProxyNFTablesConfiguration contains nftables-related configuration
|
||||
details for the Kubernetes proxy server.</p>
|
||||
|
||||
|
||||
<table class="table">
|
||||
<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
|
||||
<tbody>
|
||||
|
||||
|
||||
<tr><td><code>masqueradeBit</code> <B>[Required]</B><br/>
|
||||
<code>int32</code>
|
||||
</td>
|
||||
<td>
|
||||
<p>masqueradeBit is the bit of the iptables fwmark space to use for SNAT if using
|
||||
the nftables proxy mode. Values must be within the range [0, 31].</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>masqueradeAll</code> <B>[Required]</B><br/>
|
||||
<code>bool</code>
|
||||
</td>
|
||||
<td>
|
||||
<p>masqueradeAll tells kube-proxy to SNAT all traffic sent to Service cluster IPs,
|
||||
when using the nftables mode. This may be required with some CNI plugins.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>syncPeriod</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>syncPeriod is an interval (e.g. '5s', '1m', '2h22m') indicating how frequently
|
||||
various re-synchronizing and cleanup operations are performed. Must be greater
|
||||
than 0.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>minSyncPeriod</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>minSyncPeriod is the minimum period between iptables rule resyncs (e.g. '5s',
|
||||
'1m', '2h22m'). A value of 0 means every Service or EndpointSlice change will
|
||||
result in an immediate iptables resync.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
## `KubeProxyWinkernelConfiguration` {#kubeproxy-config-k8s-io-v1alpha1-KubeProxyWinkernelConfiguration}
|
||||
|
||||
|
||||
|
|
@ -655,7 +750,7 @@ to create endpoints and policies</p>
|
|||
<code>string</code>
|
||||
</td>
|
||||
<td>
|
||||
<p>sourceVip is the IP address of the source VIP endoint used for
|
||||
<p>sourceVip is the IP address of the source VIP endpoint used for
|
||||
NAT when loadbalancing</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -671,7 +766,7 @@ with DSR</p>
|
|||
<code>string</code>
|
||||
</td>
|
||||
<td>
|
||||
<p>RootHnsEndpointName is the name of hnsendpoint that is attached to
|
||||
<p>rootHnsEndpointName is the name of hnsendpoint that is attached to
|
||||
l2bridge for root network namespace</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -679,7 +774,7 @@ l2bridge for root network namespace</p>
|
|||
<code>bool</code>
|
||||
</td>
|
||||
<td>
|
||||
<p>ForwardHealthCheckVip forwards service VIP for health check port on
|
||||
<p>forwardHealthCheckVip forwards service VIP for health check port on
|
||||
Windows</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
|
|||
|
|
@ -26,8 +26,6 @@ auto_generated: true
|
|||
|
||||
**Appears in:**
|
||||
|
||||
- [KubeSchedulerConfiguration](#kubescheduler-config-k8s-io-v1beta3-KubeSchedulerConfiguration)
|
||||
|
||||
- [KubeSchedulerConfiguration](#kubescheduler-config-k8s-io-v1-KubeSchedulerConfiguration)
|
||||
|
||||
|
||||
|
|
@ -84,8 +82,6 @@ client.</p>
|
|||
|
||||
**Appears in:**
|
||||
|
||||
- [KubeSchedulerConfiguration](#kubescheduler-config-k8s-io-v1beta3-KubeSchedulerConfiguration)
|
||||
|
||||
- [KubeSchedulerConfiguration](#kubescheduler-config-k8s-io-v1-KubeSchedulerConfiguration)
|
||||
|
||||
|
||||
|
|
@ -120,8 +116,6 @@ enableProfiling is true.</p>
|
|||
|
||||
**Appears in:**
|
||||
|
||||
- [KubeSchedulerConfiguration](#kubescheduler-config-k8s-io-v1beta3-KubeSchedulerConfiguration)
|
||||
|
||||
- [KubeSchedulerConfiguration](#kubescheduler-config-k8s-io-v1-KubeSchedulerConfiguration)
|
||||
|
||||
|
||||
|
|
@ -402,7 +396,7 @@ Defaults to false.</p>
|
|||
|
||||
|
||||
<tr><td><code>addedAffinity</code><br/>
|
||||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#nodeaffinity-v1-core"><code>core/v1.NodeAffinity</code></a>
|
||||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#nodeaffinity-v1-core"><code>core/v1.NodeAffinity</code></a>
|
||||
</td>
|
||||
<td>
|
||||
<p>AddedAffinity is applied to all Pods additionally to the NodeAffinity
|
||||
|
|
@ -501,7 +495,7 @@ The default strategy is LeastAllocated with an equal "cpu" and "m
|
|||
|
||||
|
||||
<tr><td><code>defaultConstraints</code><br/>
|
||||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#topologyspreadconstraint-v1-core"><code>[]core/v1.TopologySpreadConstraint</code></a>
|
||||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#topologyspreadconstraint-v1-core"><code>[]core/v1.TopologySpreadConstraint</code></a>
|
||||
</td>
|
||||
<td>
|
||||
<p>DefaultConstraints defines topology spread constraints to be applied to
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -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.28/#time-v1-meta"><code>meta/v1.Time</code></a>
|
||||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#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
|
||||
|
|
@ -372,7 +372,7 @@ of view and as an authentication method for the node in the bootstrap phase of
|
|||
|
||||
|
||||
|
||||
<p>ClusterConfiguration contains cluster-wide configuration for a kubeadm cluster</p>
|
||||
<p>ClusterConfiguration contains cluster-wide configuration for a kubeadm cluster.</p>
|
||||
|
||||
|
||||
<table class="table">
|
||||
|
|
@ -539,7 +539,8 @@ interface and use that, but in case that process fails you may set the desired v
|
|||
</td>
|
||||
<td>
|
||||
<p><code>certificateKey</code> sets the key with which certificates and keys are encrypted prior to being
|
||||
uploaded in a Secret in the cluster during the <code>uploadcerts init</code> phase.</p>
|
||||
uploaded in a Secret in the cluster during the <code>uploadcerts init</code> phase.
|
||||
The certificate key is a hex encoded string that is an AES key of size 32 bytes.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>skipPhases</code><br/>
|
||||
|
|
@ -714,7 +715,7 @@ certificate.</p>
|
|||
- [Discovery](#kubeadm-k8s-io-v1beta3-Discovery)
|
||||
|
||||
|
||||
<p>BootstrapTokenDiscovery is used to set the options for bootstrap token based discovery</p>
|
||||
<p>BootstrapTokenDiscovery is used to set the options for bootstrap token based discovery.</p>
|
||||
|
||||
|
||||
<table class="table">
|
||||
|
|
@ -1037,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.28/#hostpathtype-v1-core"><code>core/v1.HostPathType</code></a>
|
||||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#hostpathtype-v1-core"><code>core/v1.HostPathType</code></a>
|
||||
</td>
|
||||
<td>
|
||||
<p><code>pathType</code> is the type of the <code>hostPath</code>.</p>
|
||||
|
|
@ -1116,7 +1117,8 @@ deployed on this node.</p>
|
|||
<td>
|
||||
<p><code>certificateKey</code> is the key that is used for decryption of certificates after
|
||||
they are downloaded from the secret upon joining a new control plane node.
|
||||
The corresponding encryption key is in the InitConfiguration.</p>
|
||||
The corresponding encryption key is in the InitConfiguration.
|
||||
The certificate key is a hex encoded string that is an AES key of size 32 bytes.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
|
@ -1130,7 +1132,7 @@ The corresponding encryption key is in the InitConfiguration.</p>
|
|||
- [Etcd](#kubeadm-k8s-io-v1beta3-Etcd)
|
||||
|
||||
|
||||
<p>LocalEtcd describes that kubeadm should run an etcd cluster locally</p>
|
||||
<p>LocalEtcd describes that kubeadm should run an etcd cluster locally.</p>
|
||||
|
||||
|
||||
<table class="table">
|
||||
|
|
@ -1189,7 +1191,7 @@ signing certificate.</p>
|
|||
- [ClusterConfiguration](#kubeadm-k8s-io-v1beta3-ClusterConfiguration)
|
||||
|
||||
|
||||
<p>Networking contains elements describing cluster's networking configuration</p>
|
||||
<p>Networking contains elements describing cluster's networking configuration.</p>
|
||||
|
||||
|
||||
<table class="table">
|
||||
|
|
@ -1232,7 +1234,7 @@ signing certificate.</p>
|
|||
|
||||
|
||||
<p>NodeRegistrationOptions holds fields that relate to registering a new control-plane or
|
||||
node to the cluster, either via "kubeadm init" or "kubeadm join"</p>
|
||||
node to the cluster, either via <code>kubeadm init</code> or <code>kubeadm join</code>.</p>
|
||||
|
||||
|
||||
<table class="table">
|
||||
|
|
@ -1260,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.28/#taint-v1-core"><code>[]core/v1.Taint</code></a>
|
||||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#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.
|
||||
|
|
@ -1292,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.28/#pullpolicy-v1-core"><code>core/v1.PullPolicy</code></a>
|
||||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#pullpolicy-v1-core"><code>core/v1.PullPolicy</code></a>
|
||||
</td>
|
||||
<td>
|
||||
<p><code>imagePullPolicy</code> specifies the policy for image pulling during kubeadm "init" and
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -80,9 +80,9 @@ to provide credentials. Images are expected to contain the registry domain
|
|||
and URL path.</p>
|
||||
<p>Each entry in matchImages is a pattern which can optionally contain a port and a path.
|
||||
Globs can be used in the domain, but not in the port or the path. Globs are supported
|
||||
as subdomains like '*.k8s.io' or 'k8s.*.io', and top-level-domains such as 'k8s.*'.
|
||||
as subdomains like '<em>.k8s.io' or 'k8s.</em>.io', and top-level-domains such as 'k8s.<em>'.
|
||||
Matching partial subdomains like 'app</em>.k8s.io' is also supported. Each glob can only match
|
||||
a single subdomain segment, so *.io does not match *.k8s.io.</p>
|
||||
a single subdomain segment, so *.io does not match *.k8s.io.</p>
|
||||
<p>A match exists between an image and a matchImage when all of the below are true:</p>
|
||||
<ul>
|
||||
<li>Both contain the same number of domain parts and each part matches.</li>
|
||||
|
|
@ -92,9 +92,9 @@ a single subdomain segment, so *.io does not match *.k8s.io.</p>
|
|||
<p>Example values of matchImages:</p>
|
||||
<ul>
|
||||
<li>123456789.dkr.ecr.us-east-1.amazonaws.com</li>
|
||||
<li>*.azurecr.io</li>
|
||||
<li>*.azurecr.io</li>
|
||||
<li>gcr.io</li>
|
||||
<li>*.*.registry.io</li>
|
||||
<li><em>.</em>.registry.io</li>
|
||||
<li>registry.io:8080/path</li>
|
||||
</ul>
|
||||
</td>
|
||||
|
|
@ -168,4 +168,4 @@ credential plugin.</p>
|
|||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
|
|
@ -672,6 +672,16 @@ garbage collected.
|
|||
Default: "2m"</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>imageMaximumGCAge</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>imageMaximumGCAge is the maximum age an image can be unused before it is garbage collected.
|
||||
The default of this field is "0s", which disables this field--meaning images won't be garbage
|
||||
collected based on being unused for too long.
|
||||
Default: "0s" (disabled)</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>imageGCHighThresholdPercent</code><br/>
|
||||
<code>int32</code>
|
||||
</td>
|
||||
|
|
@ -1448,7 +1458,7 @@ Default: 0.9</p>
|
|||
</td>
|
||||
</tr>
|
||||
<tr><td><code>registerWithTaints</code><br/>
|
||||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#taint-v1-core"><code>[]core/v1.Taint</code></a>
|
||||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#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
|
||||
|
|
@ -1528,7 +1538,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.28/#nodeconfigsource-v1-core"><code>core/v1.NodeConfigSource</code></a>
|
||||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#nodeconfigsource-v1-core"><code>core/v1.NodeConfigSource</code></a>
|
||||
</td>
|
||||
<td>
|
||||
<p>source is the source that we are serializing.</p>
|
||||
|
|
@ -1574,9 +1584,9 @@ to provide credentials. Images are expected to contain the registry domain
|
|||
and URL path.</p>
|
||||
<p>Each entry in matchImages is a pattern which can optionally contain a port and a path.
|
||||
Globs can be used in the domain, but not in the port or the path. Globs are supported
|
||||
as subdomains like '*.k8s.io' or 'k8s.*.io', and top-level-domains such as 'k8s.*'.
|
||||
Matching partial subdomains like 'app*.k8s.io' is also supported. Each glob can only match
|
||||
a single subdomain segment, so *.io does not match *.k8s.io.</p>
|
||||
as subdomains like '<em>.k8s.io' or 'k8s.</em>.io', and top-level-domains such as 'k8s.<em>'.
|
||||
Matching partial subdomains like 'app</em>.k8s.io' is also supported. Each glob can only match
|
||||
a single subdomain segment, so *.io does not match *.k8s.io.</p>
|
||||
<p>A match exists between an image and a matchImage when all of the below are true:</p>
|
||||
<ul>
|
||||
<li>Both contain the same number of domain parts and each part matches.</li>
|
||||
|
|
@ -1586,9 +1596,9 @@ a single subdomain segment, so *.io does not match *.k8s.io.</p>
|
|||
<p>Example values of matchImages:</p>
|
||||
<ul>
|
||||
<li>123456789.dkr.ecr.us-east-1.amazonaws.com</li>
|
||||
<li>*.azurecr.io</li>
|
||||
<li>*.azurecr.io</li>
|
||||
<li>gcr.io</li>
|
||||
<li>*.*.registry.io</li>
|
||||
<li><em>.</em>.registry.io</li>
|
||||
<li>registry.io:8080/path</li>
|
||||
</ul>
|
||||
</td>
|
||||
|
|
@ -1889,7 +1899,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.28/#resourcelist-v1-core"><code>core/v1.ResourceList</code></a>
|
||||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#resourcelist-v1-core"><code>core/v1.ResourceList</code></a>
|
||||
</td>
|
||||
<td>
|
||||
<span class="text-muted">No description provided.</span></td>
|
||||
|
|
@ -1970,4 +1980,4 @@ managers (secret, configmap) are discovering object changes.</p>
|
|||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
|
|
@ -79,7 +79,7 @@ CredentialProviderConfig. If set to 0, the kubelet will not cache the provided A
|
|||
</td>
|
||||
</tr>
|
||||
<tr><td><code>auth</code><br/>
|
||||
<a href="#credentialprovider-kubelet-k8s-io-v1-AuthConfig"><code>map[string]k8s.io/kubelet/pkg/apis/credentialprovider/v1.AuthConfig</code></a>
|
||||
<a href="#credentialprovider-kubelet-k8s-io-v1-AuthConfig"><code>map[string]AuthConfig</code></a>
|
||||
</td>
|
||||
<td>
|
||||
<p>auth is a map containing authentication information passed into the kubelet.
|
||||
|
|
@ -88,9 +88,9 @@ should be valid for all images that match against this key. A plugin should set
|
|||
this field to null if no valid credentials can be returned for the requested image.</p>
|
||||
<p>Each key in the map is a pattern which can optionally contain a port and a path.
|
||||
Globs can be used in the domain, but not in the port or the path. Globs are supported
|
||||
as subdomains like '*.k8s.io' or 'k8s.*.io', and top-level-domains such as 'k8s.*'.
|
||||
Matching partial subdomains like 'app*.k8s.io' is also supported. Each glob can only match
|
||||
a single subdomain segment, so *.io does not match *.k8s.io.</p>
|
||||
as subdomains like '<em>.k8s.io' or 'k8s.</em>.io', and top-level-domains such as 'k8s.<em>'.
|
||||
Matching partial subdomains like 'app</em>.k8s.io' is also supported. Each glob can only match
|
||||
a single subdomain segment, so *.io does not match *.k8s.io.</p>
|
||||
<p>The kubelet will match images against the key when all of the below are true:</p>
|
||||
<ul>
|
||||
<li>Both contain the same number of domain parts and each part matches.</li>
|
||||
|
|
@ -107,9 +107,9 @@ stopping after the first successfully authenticated pull.</p>
|
|||
<p>Example keys:</p>
|
||||
<ul>
|
||||
<li>123456789.dkr.ecr.us-east-1.amazonaws.com</li>
|
||||
<li>*.azurecr.io</li>
|
||||
<li>*.azurecr.io</li>
|
||||
<li>gcr.io</li>
|
||||
<li>*.*.registry.io</li>
|
||||
<li><em>.</em>.registry.io</li>
|
||||
<li>registry.io:8080/path</li>
|
||||
</ul>
|
||||
</td>
|
||||
|
|
@ -165,4 +165,4 @@ An empty password is valid.</p>
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1,168 +0,0 @@
|
|||
---
|
||||
title: Kubelet CredentialProvider (v1alpha1)
|
||||
content_type: tool-reference
|
||||
package: credentialprovider.kubelet.k8s.io/v1alpha1
|
||||
auto_generated: true
|
||||
---
|
||||
|
||||
|
||||
## Resource Types
|
||||
|
||||
|
||||
- [CredentialProviderRequest](#credentialprovider-kubelet-k8s-io-v1alpha1-CredentialProviderRequest)
|
||||
- [CredentialProviderResponse](#credentialprovider-kubelet-k8s-io-v1alpha1-CredentialProviderResponse)
|
||||
|
||||
|
||||
## `CredentialProviderRequest` {#credentialprovider-kubelet-k8s-io-v1alpha1-CredentialProviderRequest}
|
||||
|
||||
|
||||
|
||||
<p>CredentialProviderRequest includes the image that the kubelet requires authentication for.
|
||||
Kubelet will pass this request object to the plugin via stdin. In general, plugins should
|
||||
prefer responding with the same apiVersion they were sent.</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>credentialprovider.kubelet.k8s.io/v1alpha1</code></td></tr>
|
||||
<tr><td><code>kind</code><br/>string</td><td><code>CredentialProviderRequest</code></td></tr>
|
||||
|
||||
|
||||
<tr><td><code>image</code> <B>[Required]</B><br/>
|
||||
<code>string</code>
|
||||
</td>
|
||||
<td>
|
||||
<p>image is the container image that is being pulled as part of the
|
||||
credential provider plugin request. Plugins may optionally parse the image
|
||||
to extract any information required to fetch credentials.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
## `CredentialProviderResponse` {#credentialprovider-kubelet-k8s-io-v1alpha1-CredentialProviderResponse}
|
||||
|
||||
|
||||
|
||||
<p>CredentialProviderResponse holds credentials that the kubelet should use for the specified
|
||||
image provided in the original request. Kubelet will read the response from the plugin via stdout.
|
||||
This response should be set to the same apiVersion as CredentialProviderRequest.</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>credentialprovider.kubelet.k8s.io/v1alpha1</code></td></tr>
|
||||
<tr><td><code>kind</code><br/>string</td><td><code>CredentialProviderResponse</code></td></tr>
|
||||
|
||||
|
||||
<tr><td><code>cacheKeyType</code> <B>[Required]</B><br/>
|
||||
<a href="#credentialprovider-kubelet-k8s-io-v1alpha1-PluginCacheKeyType"><code>PluginCacheKeyType</code></a>
|
||||
</td>
|
||||
<td>
|
||||
<p>cacheKeyType indiciates the type of caching key to use based on the image provided
|
||||
in the request. There are three valid values for the cache key type: Image, Registry, and
|
||||
Global. If an invalid value is specified, the response will NOT be used by the kubelet.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>cacheDuration</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>cacheDuration indicates the duration the provided credentials should be cached for.
|
||||
The kubelet will use this field to set the in-memory cache duration for credentials
|
||||
in the AuthConfig. If null, the kubelet will use defaultCacheDuration provided in
|
||||
CredentialProviderConfig. If set to 0, the kubelet will not cache the provided AuthConfig.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>auth</code><br/>
|
||||
<a href="#credentialprovider-kubelet-k8s-io-v1alpha1-AuthConfig"><code>map[string]k8s.io/kubelet/pkg/apis/credentialprovider/v1alpha1.AuthConfig</code></a>
|
||||
</td>
|
||||
<td>
|
||||
<p>auth is a map containing authentication information passed into the kubelet.
|
||||
Each key is a match image string (more on this below). The corresponding authConfig value
|
||||
should be valid for all images that match against this key. A plugin should set
|
||||
this field to null if no valid credentials can be returned for the requested image.</p>
|
||||
<p>Each key in the map is a pattern which can optionally contain a port and a path.
|
||||
Globs can be used in the domain, but not in the port or the path. Globs are supported
|
||||
as subdomains like '*.k8s.io' or 'k8s.*.io', and top-level-domains such as 'k8s.*'.
|
||||
Matching partial subdomains like 'app*.k8s.io' is also supported. Each glob can only match
|
||||
a single subdomain segment, so *.io does not match *.k8s.io.</p>
|
||||
<p>The kubelet will match images against the key when all of the below are true:</p>
|
||||
<ul>
|
||||
<li>Both contain the same number of domain parts and each part matches.</li>
|
||||
<li>The URL path of an imageMatch must be a prefix of the target image URL path.</li>
|
||||
<li>If the imageMatch contains a port, then the port must match in the image as well.</li>
|
||||
</ul>
|
||||
<p>When multiple keys are returned, the kubelet will traverse all keys in reverse order so that:</p>
|
||||
<ul>
|
||||
<li>longer keys come before shorter keys with the same prefix</li>
|
||||
<li>non-wildcard keys come before wildcard keys with the same prefix.</li>
|
||||
</ul>
|
||||
<p>For any given match, the kubelet will attempt an image pull with the provided credentials,
|
||||
stopping after the first successfully authenticated pull.</p>
|
||||
<p>Example keys:</p>
|
||||
<ul>
|
||||
<li>123456789.dkr.ecr.us-east-1.amazonaws.com</li>
|
||||
<li>*.azurecr.io</li>
|
||||
<li>gcr.io</li>
|
||||
<li>*.*.registry.io</li>
|
||||
<li>registry.io:8080/path</li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
## `AuthConfig` {#credentialprovider-kubelet-k8s-io-v1alpha1-AuthConfig}
|
||||
|
||||
|
||||
**Appears in:**
|
||||
|
||||
- [CredentialProviderResponse](#credentialprovider-kubelet-k8s-io-v1alpha1-CredentialProviderResponse)
|
||||
|
||||
|
||||
<p>AuthConfig contains authentication information for a container registry.
|
||||
Only username/password based authentication is supported today, but more authentication
|
||||
mechanisms may be added in the future.</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/>
|
||||
<code>string</code>
|
||||
</td>
|
||||
<td>
|
||||
<p>username is the username used for authenticating to the container registry
|
||||
An empty username is valid.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>password</code> <B>[Required]</B><br/>
|
||||
<code>string</code>
|
||||
</td>
|
||||
<td>
|
||||
<p>password is the password used for authenticating to the container registry
|
||||
An empty password is valid.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
## `PluginCacheKeyType` {#credentialprovider-kubelet-k8s-io-v1alpha1-PluginCacheKeyType}
|
||||
|
||||
(Alias of `string`)
|
||||
|
||||
**Appears in:**
|
||||
|
||||
- [CredentialProviderResponse](#credentialprovider-kubelet-k8s-io-v1alpha1-CredentialProviderResponse)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1,168 +0,0 @@
|
|||
---
|
||||
title: Kubelet CredentialProvider (v1beta1)
|
||||
content_type: tool-reference
|
||||
package: credentialprovider.kubelet.k8s.io/v1beta1
|
||||
auto_generated: true
|
||||
---
|
||||
|
||||
|
||||
## Resource Types
|
||||
|
||||
|
||||
- [CredentialProviderRequest](#credentialprovider-kubelet-k8s-io-v1beta1-CredentialProviderRequest)
|
||||
- [CredentialProviderResponse](#credentialprovider-kubelet-k8s-io-v1beta1-CredentialProviderResponse)
|
||||
|
||||
|
||||
## `CredentialProviderRequest` {#credentialprovider-kubelet-k8s-io-v1beta1-CredentialProviderRequest}
|
||||
|
||||
|
||||
|
||||
<p>CredentialProviderRequest includes the image that the kubelet requires authentication for.
|
||||
Kubelet will pass this request object to the plugin via stdin. In general, plugins should
|
||||
prefer responding with the same apiVersion they were sent.</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>credentialprovider.kubelet.k8s.io/v1beta1</code></td></tr>
|
||||
<tr><td><code>kind</code><br/>string</td><td><code>CredentialProviderRequest</code></td></tr>
|
||||
|
||||
|
||||
<tr><td><code>image</code> <B>[Required]</B><br/>
|
||||
<code>string</code>
|
||||
</td>
|
||||
<td>
|
||||
<p>image is the container image that is being pulled as part of the
|
||||
credential provider plugin request. Plugins may optionally parse the image
|
||||
to extract any information required to fetch credentials.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
## `CredentialProviderResponse` {#credentialprovider-kubelet-k8s-io-v1beta1-CredentialProviderResponse}
|
||||
|
||||
|
||||
|
||||
<p>CredentialProviderResponse holds credentials that the kubelet should use for the specified
|
||||
image provided in the original request. Kubelet will read the response from the plugin via stdout.
|
||||
This response should be set to the same apiVersion as CredentialProviderRequest.</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>credentialprovider.kubelet.k8s.io/v1beta1</code></td></tr>
|
||||
<tr><td><code>kind</code><br/>string</td><td><code>CredentialProviderResponse</code></td></tr>
|
||||
|
||||
|
||||
<tr><td><code>cacheKeyType</code> <B>[Required]</B><br/>
|
||||
<a href="#credentialprovider-kubelet-k8s-io-v1beta1-PluginCacheKeyType"><code>PluginCacheKeyType</code></a>
|
||||
</td>
|
||||
<td>
|
||||
<p>cacheKeyType indiciates the type of caching key to use based on the image provided
|
||||
in the request. There are three valid values for the cache key type: Image, Registry, and
|
||||
Global. If an invalid value is specified, the response will NOT be used by the kubelet.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>cacheDuration</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>cacheDuration indicates the duration the provided credentials should be cached for.
|
||||
The kubelet will use this field to set the in-memory cache duration for credentials
|
||||
in the AuthConfig. If null, the kubelet will use defaultCacheDuration provided in
|
||||
CredentialProviderConfig. If set to 0, the kubelet will not cache the provided AuthConfig.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>auth</code><br/>
|
||||
<a href="#credentialprovider-kubelet-k8s-io-v1beta1-AuthConfig"><code>map[string]k8s.io/kubelet/pkg/apis/credentialprovider/v1beta1.AuthConfig</code></a>
|
||||
</td>
|
||||
<td>
|
||||
<p>auth is a map containing authentication information passed into the kubelet.
|
||||
Each key is a match image string (more on this below). The corresponding authConfig value
|
||||
should be valid for all images that match against this key. A plugin should set
|
||||
this field to null if no valid credentials can be returned for the requested image.</p>
|
||||
<p>Each key in the map is a pattern which can optionally contain a port and a path.
|
||||
Globs can be used in the domain, but not in the port or the path. Globs are supported
|
||||
as subdomains like '*.k8s.io' or 'k8s.*.io', and top-level-domains such as 'k8s.*'.
|
||||
Matching partial subdomains like 'app*.k8s.io' is also supported. Each glob can only match
|
||||
a single subdomain segment, so *.io does not match *.k8s.io.</p>
|
||||
<p>The kubelet will match images against the key when all of the below are true:</p>
|
||||
<ul>
|
||||
<li>Both contain the same number of domain parts and each part matches.</li>
|
||||
<li>The URL path of an imageMatch must be a prefix of the target image URL path.</li>
|
||||
<li>If the imageMatch contains a port, then the port must match in the image as well.</li>
|
||||
</ul>
|
||||
<p>When multiple keys are returned, the kubelet will traverse all keys in reverse order so that:</p>
|
||||
<ul>
|
||||
<li>longer keys come before shorter keys with the same prefix</li>
|
||||
<li>non-wildcard keys come before wildcard keys with the same prefix.</li>
|
||||
</ul>
|
||||
<p>For any given match, the kubelet will attempt an image pull with the provided credentials,
|
||||
stopping after the first successfully authenticated pull.</p>
|
||||
<p>Example keys:</p>
|
||||
<ul>
|
||||
<li>123456789.dkr.ecr.us-east-1.amazonaws.com</li>
|
||||
<li>*.azurecr.io</li>
|
||||
<li>gcr.io</li>
|
||||
<li>*.*.registry.io</li>
|
||||
<li>registry.io:8080/path</li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
## `AuthConfig` {#credentialprovider-kubelet-k8s-io-v1beta1-AuthConfig}
|
||||
|
||||
|
||||
**Appears in:**
|
||||
|
||||
- [CredentialProviderResponse](#credentialprovider-kubelet-k8s-io-v1beta1-CredentialProviderResponse)
|
||||
|
||||
|
||||
<p>AuthConfig contains authentication information for a container registry.
|
||||
Only username/password based authentication is supported today, but more authentication
|
||||
mechanisms may be added in the future.</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/>
|
||||
<code>string</code>
|
||||
</td>
|
||||
<td>
|
||||
<p>username is the username used for authenticating to the container registry
|
||||
An empty username is valid.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><code>password</code> <B>[Required]</B><br/>
|
||||
<code>string</code>
|
||||
</td>
|
||||
<td>
|
||||
<p>password is the password used for authenticating to the container registry
|
||||
An empty password is valid.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
## `PluginCacheKeyType` {#credentialprovider-kubelet-k8s-io-v1beta1-PluginCacheKeyType}
|
||||
|
||||
(Alias of `string`)
|
||||
|
||||
**Appears in:**
|
||||
|
||||
- [CredentialProviderResponse](#credentialprovider-kubelet-k8s-io-v1beta1-CredentialProviderResponse)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue