2152 lines
91 KiB
Markdown
2152 lines
91 KiB
Markdown
---
|
|
title: kubeadm Configuration (v1beta4)
|
|
content_type: tool-reference
|
|
package: kubeadm.k8s.io/v1beta4
|
|
auto_generated: true
|
|
---
|
|
<h2>Overview</h2>
|
|
<p>Package v1beta4 defines the v1beta4 version of the kubeadm configuration file format.
|
|
This version improves on the v1beta3 format by fixing some minor issues and adding a few new fields.</p>
|
|
<p>A list of changes since v1beta3:</p>
|
|
<ul>
|
|
<li>TODO https://github.com/kubernetes/kubeadm/issues/2890</li>
|
|
<li>Support custom environment variables in control plane components under <code>ClusterConfiguration</code>.
|
|
Use <code>apiServer.extraEnvs</code>, <code>controllerManager.extraEnvs</code>, <code>scheduler.extraEnvs</code>,
|
|
<code>etcd.local.extraEnvs</code>.</li>
|
|
<li>The <code>ResetConfiguration</code> API type is now supported in v1beta4.
|
|
Users are able to reset a node by passing a <code>--config</code> file to <code>kubeadm reset</code>.</li>
|
|
<li>Dry run mode is now configureable in InitConfiguration and JoinConfiguration.</li>
|
|
<li>Replace the existing string/string extra argument maps with structured extra arguments
|
|
that support duplicates. The change applies to <code>ClusterConfiguration</code> - <code>apiServer.extraArgs</code>,
|
|
<code>controllerManager.extraArgs</code>, <code>scheduler.extraArgs</code>, <code>etcd.local.extraArgs</code>.
|
|
Also to <code>nodeRegistration.kubeletExtraArgs</code>.</li>
|
|
<li>Add <code>ClusterConfiguration.encryptionAlgorithm</code> that can be used to set the asymmetric
|
|
encryption algorithm used for this cluster's keys and certificates. Can be one of
|
|
<code>"RSA-2048"</code> (default), <code>"RSA-3072"</code>, <code>"RSA-4096"</code> or <code>"ECDSA-P256"</code>.</li>
|
|
<li>Add <code>ClusterConfiguration.dns.disabled</code> and <code>ClusterConfiguration.proxy.disabled</code>
|
|
that can be used to disable the CoreDNS and kube-proxy addons during cluster
|
|
initialization. Skipping the related addons phases, during cluster creation will
|
|
set the same fields to <code>false</code>.</li>
|
|
<li>Add the <code>nodeRegistration.imagePullSerial</code> field in <code>InitConfiguration</code> and <code>JoinConfiguration</code>, which
|
|
can be used to control if kubeadm pulls images serially or in parallel.</li>
|
|
<li>The <code>UpgradeConfiguration</code> kubeadm API is now supported in v1beta4 when passing
|
|
<code>--config</code> to <code>kubeadm upgrade</code> subcommands. Usage of component configuration for <code>kubelet</code> and <code>kube-proxy</code>,
|
|
<code>InitConfiguration</code> and <code>ClusterConfiguration</code> is deprecated and will be ignored when passing <code>--config</code> to
|
|
<code>upgrade</code> subcommands.</li>
|
|
<li>Add a <code>Timeouts</code> structure to <code>InitConfiguration</code>, <code>JoinConfiguration</code>, <code>ResetConfiguration</code> and <code>UpgradeConfiguration</code>
|
|
that can be used to configure various timeouts.</li>
|
|
<li>Add a <code>certificateValidityPeriod</code> and <code>caCertificateValidityPeriod</code> fields to <code>ClusterConfiguration</code>. These fields
|
|
can be used to control the validity period of certificates generated by kubeadm during sub-commands such as <code>init</code>,
|
|
<code>join</code>, <code>upgrade</code> and <code>certs</code>. Default values continue to be 1 year for non-CA certificates and 10 years for CA
|
|
certificates. Only non-CA certificates continue to be renewable by <code>kubeadm certs renew</code>.</li>
|
|
</ul>
|
|
<h1>Migration from old kubeadm config versions</h1>
|
|
<ul>
|
|
<li>kubeadm v1.15.x and newer can be used to migrate from v1beta1 to v1beta2.</li>
|
|
<li>kubeadm v1.22.x and newer no longer support v1beta1 and older APIs, but can be used to migrate v1beta2 to v1beta3.</li>
|
|
<li>kubeadm v1.27.x and newer no longer support v1beta2 and older APIs.</li>
|
|
<li>TODO: https://github.com/kubernetes/kubeadm/issues/2890
|
|
add version that can be used to convert to v1beta4</li>
|
|
</ul>
|
|
<h2>Basics</h2>
|
|
<p>The preferred way to configure kubeadm is to pass an YAML configuration file with
|
|
the <code>--config</code> option. Some of the configuration options defined in the kubeadm
|
|
config file are also available as command line flags, but only the most
|
|
common/simple use case are supported with this approach.</p>
|
|
<p>A kubeadm config file could contain multiple configuration types separated using three dashes (<code>---</code>).</p>
|
|
<p>kubeadm supports the following configuration types:</p>
|
|
<pre><code>apiVersion: kubeadm.k8s.io/v1beta4
|
|
kind: InitConfiguration
|
|
|
|
apiVersion: kubeadm.k8s.io/v1beta4
|
|
kind: ClusterConfiguration
|
|
|
|
apiVersion: kubelet.config.k8s.io/v1beta1
|
|
kind: KubeletConfiguration
|
|
|
|
apiVersion: kubeproxy.config.k8s.io/v1alpha1
|
|
kind: KubeProxyConfiguration
|
|
|
|
apiVersion: kubeadm.k8s.io/v1beta4
|
|
kind: JoinConfiguration
|
|
|
|
apiVersion: kubeadm.k8s.io/v1beta4
|
|
kind: ResetConfiguration
|
|
|
|
apiVersion: kubeadm.k8s.io/v1beta4
|
|
kind: UpgradeConfiguration
|
|
</code></pre>
|
|
<p>To print the defaults for <code>init</code> and <code>join</code> actions use the following commands:</p>
|
|
<pre style="background-color:#fff">kubeadm config print init-defaults
|
|
kubeadm config print join-defaults
|
|
kubeadm config print reset-defaults
|
|
kubeadm config print upgrade-defaults
|
|
</pre><p>The list of configuration types that must be included in a configuration file depends by the action you are
|
|
performing (<code>init</code> or <code>join</code>) and by the configuration options you are going to use (defaults or advanced customization).</p>
|
|
<p>If some configuration types are not provided, or provided only partially, kubeadm will use default values; defaults
|
|
provided by kubeadm includes also enforcing consistency of values across components when required (e.g.
|
|
<code>--cluster-cidr</code> flag on controller manager and <code>clusterCIDR</code> on kube-proxy).</p>
|
|
<p>Users are always allowed to override default values, with the only exception of a small subset of setting with
|
|
relevance for security (e.g. enforce authorization-mode Node and RBAC on api server).</p>
|
|
<p>If the user provides a configuration types that is not expected for the action you are performing, kubeadm will
|
|
ignore those types and print a warning.</p>
|
|
<h2>Kubeadm init configuration types</h2>
|
|
<p>When executing kubeadm init with the <code>--config</code> option, the following configuration types could be used:
|
|
InitConfiguration, ClusterConfiguration, KubeProxyConfiguration, KubeletConfiguration, but only one
|
|
between InitConfiguration and ClusterConfiguration is mandatory.</p>
|
|
<pre style="background-color:#fff"><span style="color:#000;font-weight:bold">apiVersion</span>:<span style="color:#bbb"> </span>kubeadm.k8s.io/v1beta4<span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span><span style="color:#000;font-weight:bold">kind</span>:<span style="color:#bbb"> </span>InitConfiguration<span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span><span style="color:#000;font-weight:bold">bootstrapTokens</span>:<span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span>...<span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span><span style="color:#000;font-weight:bold">nodeRegistration</span>:<span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span>...<span style="color:#bbb">
|
|
</span></pre><p>The InitConfiguration type should be used to configure runtime settings, that in case of kubeadm init
|
|
are the configuration of the bootstrap token and all the setting which are specific to the node where kubeadm
|
|
is executed, including:</p>
|
|
<ul>
|
|
<li>
|
|
<p>NodeRegistration, that holds fields that relate to registering the new node to the cluster;
|
|
use it to customize the node name, the CRI socket to use or any other settings that should apply to this
|
|
node only (e.g. the node ip).</p>
|
|
</li>
|
|
<li>
|
|
<p>LocalAPIEndpoint, that represents the endpoint of the instance of the API server to be deployed on this node;
|
|
use it e.g. to customize the API server advertise address.</p>
|
|
</li>
|
|
</ul>
|
|
<pre style="background-color:#fff"><span style="color:#000;font-weight:bold">apiVersion</span>:<span style="color:#bbb"> </span>kubeadm.k8s.io/v1beta4<span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span><span style="color:#000;font-weight:bold">kind</span>:<span style="color:#bbb"> </span>ClusterConfiguration<span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span><span style="color:#000;font-weight:bold">networking</span>:<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span>...<span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span><span style="color:#000;font-weight:bold">etcd</span>:<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span>...<span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span><span style="color:#000;font-weight:bold">apiServer</span>:<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">extraArgs</span>:<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span>...<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">extraVolumes</span>:<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span>...<span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span>...<span style="color:#bbb">
|
|
</span></pre><p>The ClusterConfiguration type should be used to configure cluster-wide settings,
|
|
including settings for:</p>
|
|
<ul>
|
|
<li>
|
|
<p><code>networking</code> that holds configuration for the networking topology of the cluster; use it e.g. to customize
|
|
Pod subnet or services subnet.</p>
|
|
</li>
|
|
<li>
|
|
<p><code>etcd</code>: use it e.g. to customize the local etcd or to configure the API server
|
|
for using an external etcd cluster.</p>
|
|
</li>
|
|
<li>
|
|
<p>kube-apiserver, kube-scheduler, kube-controller-manager configurations; use it to customize control-plane
|
|
components by adding customized setting or overriding kubeadm default settings.</p>
|
|
</li>
|
|
</ul>
|
|
<pre style="background-color:#fff"><span style="color:#000;font-weight:bold">apiVersion</span>:<span style="color:#bbb"> </span>kubeproxy.config.k8s.io/v1alpha1<span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span><span style="color:#000;font-weight:bold">kind</span>:<span style="color:#bbb"> </span>KubeProxyConfiguration<span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span>...<span style="color:#bbb">
|
|
</span></pre><p>The KubeProxyConfiguration type should be used to change the configuration passed to kube-proxy instances deployed
|
|
in the cluster. If this object is not provided or provided only partially, kubeadm applies defaults.</p>
|
|
<p>See https://kubernetes.io/docs/reference/command-line-tools-reference/kube-proxy/ or
|
|
https://pkg.go.dev/k8s.io/kube-proxy/config/v1alpha1#KubeProxyConfiguration
|
|
for kube-proxy official documentation.</p>
|
|
<pre style="background-color:#fff"><span style="color:#000;font-weight:bold">apiVersion</span>:<span style="color:#bbb"> </span>kubelet.config.k8s.io/v1beta1<span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span><span style="color:#000;font-weight:bold">kind</span>:<span style="color:#bbb"> </span>KubeletConfiguration<span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span>...<span style="color:#bbb">
|
|
</span></pre><p>The KubeletConfiguration type should be used to change the configurations that will be passed to all kubelet instances
|
|
deployed in the cluster. If this object is not provided or provided only partially, kubeadm applies defaults.</p>
|
|
<p>See https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/ or
|
|
https://pkg.go.dev/k8s.io/kubelet/config/v1beta1#KubeletConfiguration
|
|
for kubelet official documentation.</p>
|
|
<p>Here is a fully populated example of a single YAML file containing multiple
|
|
configuration types to be used during a <code>kubeadm init</code> run.</p>
|
|
<pre style="background-color:#fff"><span style="color:#000;font-weight:bold">apiVersion</span>:<span style="color:#bbb"> </span>kubeadm.k8s.io/v1beta4<span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span><span style="color:#000;font-weight:bold">kind</span>:<span style="color:#bbb"> </span>InitConfiguration<span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span><span style="color:#000;font-weight:bold">bootstrapTokens</span>:<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span>- <span style="color:#000;font-weight:bold">token</span>:<span style="color:#bbb"> </span><span style="color:#d14">"9a08jv.c0izixklcxtmnze7"</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">description</span>:<span style="color:#bbb"> </span><span style="color:#d14">"kubeadm bootstrap token"</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">ttl</span>:<span style="color:#bbb"> </span><span style="color:#d14">"24h"</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span>- <span style="color:#000;font-weight:bold">token</span>:<span style="color:#bbb"> </span><span style="color:#d14">"783bde.3f89s0fje9f38fhf"</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">description</span>:<span style="color:#bbb"> </span><span style="color:#d14">"another bootstrap token"</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">usages</span>:<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span>- authentication<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span>- signing<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">groups</span>:<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span>- system:bootstrappers:kubeadm:default-node-token<span style="color:#bbb">
|
|
</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span><span style="color:#000;font-weight:bold">nodeRegistration</span>:<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">name</span>:<span style="color:#bbb"> </span><span style="color:#d14">"ec2-10-100-0-1"</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">criSocket</span>:<span style="color:#bbb"> </span><span style="color:#d14">"unix:///var/run/containerd/containerd.sock"</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">taints</span>:<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span>- <span style="color:#000;font-weight:bold">key</span>:<span style="color:#bbb"> </span><span style="color:#d14">"kubeadmNode"</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">value</span>:<span style="color:#bbb"> </span><span style="color:#d14">"someValue"</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">effect</span>:<span style="color:#bbb"> </span><span style="color:#d14">"NoSchedule"</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">kubeletExtraArgs</span>:<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span>- <span style="color:#000;font-weight:bold">name</span>:<span style="color:#bbb"> </span>v<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">value</span>:<span style="color:#bbb"> </span><span style="color:#d14">"5"</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">ignorePreflightErrors</span>:<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span>- IsPrivilegedUser<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">imagePullPolicy</span>:<span style="color:#bbb"> </span><span style="color:#d14">"IfNotPresent"</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">imagePullSerial</span>:<span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">true</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span><span style="color:#000;font-weight:bold">localAPIEndpoint</span>:<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">advertiseAddress</span>:<span style="color:#bbb"> </span><span style="color:#d14">"10.100.0.1"</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">bindPort</span>:<span style="color:#bbb"> </span><span style="color:#099">6443</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span><span style="color:#000;font-weight:bold">certificateKey</span>:<span style="color:#bbb"> </span><span style="color:#d14">"e6a2eb8581237ab72a4f494f30285ec12a9694d750b9785706a83bfcbbbd2204"</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span><span style="color:#000;font-weight:bold">skipPhases</span>:<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span>- preflight<span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span><span style="color:#000;font-weight:bold">timeouts</span>:<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">controlPlaneComponentHealthCheck</span>:<span style="color:#bbb"> </span><span style="color:#d14">"60s"</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">kubenetesAPICall</span>:<span style="color:#bbb"> </span><span style="color:#d14">"40s"</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span>---<span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span><span style="color:#000;font-weight:bold">apiVersion</span>:<span style="color:#bbb"> </span>kubeadm.k8s.io/v1beta4<span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span><span style="color:#000;font-weight:bold">kind</span>:<span style="color:#bbb"> </span>ClusterConfiguration<span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span><span style="color:#000;font-weight:bold">etcd</span>:<span style="color:#bbb">
|
|
</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#998;font-style:italic"># one of local or external</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">local</span>:<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">imageRepository</span>:<span style="color:#bbb"> </span><span style="color:#d14">"registry.k8s.io"</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">imageTag</span>:<span style="color:#bbb"> </span><span style="color:#d14">"3.2.24"</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">dataDir</span>:<span style="color:#bbb"> </span><span style="color:#d14">"/var/lib/etcd"</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">extraArgs</span>:<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span>- <span style="color:#000;font-weight:bold">name</span>:<span style="color:#bbb"> </span>listen-client-urls<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">value</span>:<span style="color:#bbb"> </span>http://<span style="color:#099">10.100.0.1</span>:<span style="color:#099">2379</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">extraEnvs</span>:<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span>- <span style="color:#000;font-weight:bold">name</span>:<span style="color:#bbb"> </span>SOME_VAR<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">value</span>:<span style="color:#bbb"> </span>SOME_VALUE<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">serverCertSANs</span>:<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span>- <span style="color:#bbb"> </span><span style="color:#d14">"ec2-10-100-0-1.compute-1.amazonaws.com"</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">peerCertSANs</span>:<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span>- <span style="color:#d14">"10.100.0.1"</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#998;font-style:italic"># external:</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#998;font-style:italic"># endpoints:</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#998;font-style:italic"># - "10.100.0.1:2379"</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#998;font-style:italic"># - "10.100.0.2:2379"</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#998;font-style:italic"># caFile: "/etcd/kubernetes/pki/etcd/etcd-ca.crt"</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#998;font-style:italic"># certFile: "/etcd/kubernetes/pki/etcd/etcd.crt"</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#998;font-style:italic"># keyFile: "/etcd/kubernetes/pki/etcd/etcd.key"</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span><span style="color:#000;font-weight:bold">networking</span>:<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">serviceSubnet</span>:<span style="color:#bbb"> </span><span style="color:#d14">"10.96.0.0/16"</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">podSubnet</span>:<span style="color:#bbb"> </span><span style="color:#d14">"10.244.0.0/24"</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">dnsDomain</span>:<span style="color:#bbb"> </span><span style="color:#d14">"cluster.local"</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span><span style="color:#000;font-weight:bold">kubernetesVersion</span>:<span style="color:#bbb"> </span><span style="color:#d14">"v1.21.0"</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span><span style="color:#000;font-weight:bold">controlPlaneEndpoint</span>:<span style="color:#bbb"> </span><span style="color:#d14">"10.100.0.1:6443"</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span><span style="color:#000;font-weight:bold">apiServer</span>:<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">extraArgs</span>:<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span>- <span style="color:#000;font-weight:bold">name</span>:<span style="color:#bbb"> </span>authorization-mode<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">value</span>:<span style="color:#bbb"> </span><span style="color:#d14">"Node,RBAC"</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">extraEnvs</span>:<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span>- <span style="color:#000;font-weight:bold">name</span>:<span style="color:#bbb"> </span>SOME_VAR<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">value</span>:<span style="color:#bbb"> </span>SOME_VALUE<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">extraVolumes</span>:<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span>- <span style="color:#000;font-weight:bold">name</span>:<span style="color:#bbb"> </span><span style="color:#d14">"some-volume"</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">hostPath</span>:<span style="color:#bbb"> </span><span style="color:#d14">"/etc/some-path"</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">mountPath</span>:<span style="color:#bbb"> </span><span style="color:#d14">"/etc/some-pod-path"</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">readOnly</span>:<span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">false</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">pathType</span>:<span style="color:#bbb"> </span>File<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">certSANs</span>:<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span>- <span style="color:#d14">"10.100.1.1"</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span>- <span style="color:#d14">"ec2-10-100-0-1.compute-1.amazonaws.com"</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span><span style="color:#000;font-weight:bold">controllerManager</span>:<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">extraArgs</span>:<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span>- <span style="color:#000;font-weight:bold">name</span>:<span style="color:#bbb"> </span>node-cidr-mask-size<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">value</span>:<span style="color:#bbb"> </span><span style="color:#d14">"20"</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">extraVolumes</span>:<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span>- <span style="color:#000;font-weight:bold">name</span>:<span style="color:#bbb"> </span><span style="color:#d14">"some-volume"</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">hostPath</span>:<span style="color:#bbb"> </span><span style="color:#d14">"/etc/some-path"</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">mountPath</span>:<span style="color:#bbb"> </span><span style="color:#d14">"/etc/some-pod-path"</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">readOnly</span>:<span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">false</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">pathType</span>:<span style="color:#bbb"> </span>File<span style="color:#bbb">
|
|
</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span><span style="color:#000;font-weight:bold">scheduler</span>:<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">extraArgs</span>:<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span>- <span style="color:#000;font-weight:bold">name</span>:<span style="color:#bbb"> </span>address<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">value</span>:<span style="color:#bbb"> </span><span style="color:#d14">"10.100.0.1"</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">extraVolumes</span>:<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span>- <span style="color:#000;font-weight:bold">name</span>:<span style="color:#bbb"> </span><span style="color:#d14">"some-volume"</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">hostPath</span>:<span style="color:#bbb"> </span><span style="color:#d14">"/etc/some-path"</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">mountPath</span>:<span style="color:#bbb"> </span><span style="color:#d14">"/etc/some-pod-path"</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">readOnly</span>:<span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">false</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">pathType</span>:<span style="color:#bbb"> </span>File<span style="color:#bbb">
|
|
</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span><span style="color:#000;font-weight:bold">certificatesDir</span>:<span style="color:#bbb"> </span><span style="color:#d14">"/etc/kubernetes/pki"</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span><span style="color:#000;font-weight:bold">imageRepository</span>:<span style="color:#bbb"> </span><span style="color:#d14">"registry.k8s.io"</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span><span style="color:#000;font-weight:bold">clusterName</span>:<span style="color:#bbb"> </span><span style="color:#d14">"example-cluster"</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span><span style="color:#000;font-weight:bold">encryptionAlgorithm</span>:<span style="color:#bbb"> </span>ECDSA-P256<span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span><span style="color:#000;font-weight:bold">dns</span>:<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">disabled</span>:<span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">true</span><span style="color:#bbb"> </span><span style="color:#998;font-style:italic"># disable CoreDNS</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span><span style="color:#000;font-weight:bold">proxy</span>:<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">diabled</span>:<span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">true</span><span style="color:#bbb"> </span><span style="color:#998;font-style:italic"># disable kube-proxy</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span>---<span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span><span style="color:#000;font-weight:bold">apiVersion</span>:<span style="color:#bbb"> </span>kubelet.config.k8s.io/v1beta1<span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span><span style="color:#000;font-weight:bold">kind</span>:<span style="color:#bbb"> </span>KubeletConfiguration<span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span><span style="color:#998;font-style:italic"># kubelet specific options here</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span>---<span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span><span style="color:#000;font-weight:bold">apiVersion</span>:<span style="color:#bbb"> </span>kubeproxy.config.k8s.io/v1alpha1<span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span><span style="color:#000;font-weight:bold">kind</span>:<span style="color:#bbb"> </span>KubeProxyConfiguration<span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span><span style="color:#998;font-style:italic"># kube-proxy specific options here</span><span style="color:#bbb">
|
|
</span></pre><h2>Kubeadm join configuration types</h2>
|
|
<p>When executing kubeadm join with the --config option, the JoinConfiguration type should be provided.</p>
|
|
<pre style="background-color:#fff"><span style="color:#000;font-weight:bold">apiVersion</span>:<span style="color:#bbb"> </span>kubeadm.k8s.io/v1beta4<span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span><span style="color:#000;font-weight:bold">kind</span>:<span style="color:#bbb"> </span>JoinConfiguration<span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span><span style="color:#000;font-weight:bold">discovery</span>:<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">bootstrapToken</span>:<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">apiServerEndpoint</span>:<span style="color:#bbb"> </span>some-address:<span style="color:#099">6443</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">token</span>:<span style="color:#bbb"> </span>abcdef.0123456789abcdef<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">unsafeSkipCAVerification</span>:<span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">true</span><span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span><span style="color:#000;font-weight:bold">tlsBootstrapToken</span>:<span style="color:#bbb"> </span>abcdef.0123456789abcdef<span style="color:#bbb">
|
|
</span></pre><p>The JoinConfiguration type should be used to configure runtime settings, that in case of kubeadm join
|
|
are the discovery method used for accessing the cluster info and all the setting which are specific
|
|
to the node where kubeadm is executed, including:</p>
|
|
<ul>
|
|
<li>
|
|
<p><code>nodeRegistration</code>, that holds fields that relate to registering the new node to the cluster;
|
|
use it to customize the node name, the CRI socket to use or any other settings that should apply to this
|
|
node only (e.g. the node ip).</p>
|
|
</li>
|
|
<li>
|
|
<p><code>apiEndpoint</code>, that represents the endpoint of the instance of the API server to be eventually deployed on this node.</p>
|
|
</li>
|
|
</ul>
|
|
<h2>Kubeadm reset configuration types</h2>
|
|
<p>When executing <code>kubeadm reset</code> with the <code>--config</code> option, the <code>ResetConfiguration</code> type should be provided.</p>
|
|
<pre style="background-color:#fff"><span style="color:#000;font-weight:bold">apiVersion</span>:<span style="color:#bbb"> </span>kubeadm.k8s.io/v1beta4<span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span><span style="color:#000;font-weight:bold">kind</span>:<span style="color:#bbb"> </span>ResetConfiguration<span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span>...<span style="color:#bbb">
|
|
</span></pre><h2>Kubeadm upgrade configuration types</h2>
|
|
<p>When executing <code>kubeadm upgrade</code> with the <code>--config</code> option, the <code>UpgradeConfiguration</code> type should be provided.</p>
|
|
<pre style="background-color:#fff"><span style="color:#000;font-weight:bold">apiVersion</span>:<span style="color:#bbb"> </span>kubeadm.k8s.io/v1beta4<span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span><span style="color:#000;font-weight:bold">kind</span>:<span style="color:#bbb"> </span>UpgradeConfiguration<span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span><span style="color:#000;font-weight:bold">apply</span>:<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span>...<span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span><span style="color:#000;font-weight:bold">diff</span>:<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span>...<span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span><span style="color:#000;font-weight:bold">node</span>:<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span>...<span style="color:#bbb">
|
|
</span><span style="color:#bbb"></span><span style="color:#000;font-weight:bold">plan</span>:<span style="color:#bbb">
|
|
</span><span style="color:#bbb"> </span>...<span style="color:#bbb">
|
|
</span></pre><p>The <code>UpgradeConfiguration</code> structure includes a few substructures that only apply to different subcommands of
|
|
<code>kubeadm upgrade</code>. For example, the <code>apply</code> substructure will be used with the <code>kubeadm upgrade apply</code> subcommand
|
|
and all other substructures will be ignored in such a case.</p>
|
|
|
|
|
|
## Resource Types
|
|
|
|
|
|
- [ClusterConfiguration](#kubeadm-k8s-io-v1beta4-ClusterConfiguration)
|
|
- [InitConfiguration](#kubeadm-k8s-io-v1beta4-InitConfiguration)
|
|
- [JoinConfiguration](#kubeadm-k8s-io-v1beta4-JoinConfiguration)
|
|
- [ResetConfiguration](#kubeadm-k8s-io-v1beta4-ResetConfiguration)
|
|
- [UpgradeConfiguration](#kubeadm-k8s-io-v1beta4-UpgradeConfiguration)
|
|
|
|
|
|
|
|
|
|
## `BootstrapToken` {#BootstrapToken}
|
|
|
|
|
|
**Appears in:**
|
|
|
|
- [InitConfiguration](#kubeadm-k8s-io-v1beta3-InitConfiguration)
|
|
|
|
- [InitConfiguration](#kubeadm-k8s-io-v1beta4-InitConfiguration)
|
|
|
|
|
|
<p>BootstrapToken describes one bootstrap token, stored as a Secret in the cluster</p>
|
|
|
|
|
|
<table class="table">
|
|
<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
|
|
<tbody>
|
|
|
|
|
|
<tr><td><code>token</code> <B>[Required]</B><br/>
|
|
<a href="#BootstrapTokenString"><code>BootstrapTokenString</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>token</code> is used for establishing bidirectional trust between nodes and control-planes.
|
|
Used for joining nodes in the cluster.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>description</code><br/>
|
|
<code>string</code>
|
|
</td>
|
|
<td>
|
|
<p><code>description</code> sets a human-friendly message why this token exists and what it's used
|
|
for, so other administrators can know its purpose.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>ttl</code><br/>
|
|
<a href="https://pkg.go.dev/k8s.io/apimachinery/pkg/apis/meta/v1#Duration"><code>meta/v1.Duration</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>ttl</code> defines the time to live for this token. Defaults to <code>24h</code>.
|
|
<code>expires</code> and <code>ttl</code> are mutually exclusive.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>expires</code><br/>
|
|
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#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
|
|
dynamically at runtime based on the <code>ttl</code>. <code>expires</code> and <code>ttl</code> are mutually exclusive.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>usages</code><br/>
|
|
<code>[]string</code>
|
|
</td>
|
|
<td>
|
|
<p><code>usages</code> describes the ways in which this token can be used. Can by default be used
|
|
for establishing bidirectional trust, but that can be changed here.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>groups</code><br/>
|
|
<code>[]string</code>
|
|
</td>
|
|
<td>
|
|
<p><code>groups</code> specifies the extra groups that this token will authenticate as when/if
|
|
used for authentication</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
## `BootstrapTokenString` {#BootstrapTokenString}
|
|
|
|
|
|
**Appears in:**
|
|
|
|
- [BootstrapToken](#BootstrapToken)
|
|
|
|
|
|
<p>BootstrapTokenString is a token of the format <code>abcdef.abcdef0123456789</code> that is used
|
|
for both validation of the practically of the API server from a joining node's point
|
|
of view and as an authentication method for the node in the bootstrap phase of
|
|
"kubeadm join". This token is and should be short-lived.</p>
|
|
|
|
|
|
<table class="table">
|
|
<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
|
|
<tbody>
|
|
|
|
|
|
<tr><td><code>-</code> <B>[Required]</B><br/>
|
|
<code>string</code>
|
|
</td>
|
|
<td>
|
|
<span class="text-muted">No description provided.</span></td>
|
|
</tr>
|
|
<tr><td><code>-</code> <B>[Required]</B><br/>
|
|
<code>string</code>
|
|
</td>
|
|
<td>
|
|
<span class="text-muted">No description provided.</span></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
|
|
## `ClusterConfiguration` {#kubeadm-k8s-io-v1beta4-ClusterConfiguration}
|
|
|
|
|
|
|
|
<p>ClusterConfiguration contains cluster-wide configuration for a kubeadm cluster.</p>
|
|
|
|
|
|
<table class="table">
|
|
<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
|
|
<tbody>
|
|
|
|
<tr><td><code>apiVersion</code><br/>string</td><td><code>kubeadm.k8s.io/v1beta4</code></td></tr>
|
|
<tr><td><code>kind</code><br/>string</td><td><code>ClusterConfiguration</code></td></tr>
|
|
|
|
|
|
<tr><td><code>etcd</code><br/>
|
|
<a href="#kubeadm-k8s-io-v1beta4-Etcd"><code>Etcd</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>etcd</code> holds the configuration for etcd.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>networking</code><br/>
|
|
<a href="#kubeadm-k8s-io-v1beta4-Networking"><code>Networking</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>networking</code> holds configuration for the networking topology of the cluster.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>kubernetesVersion</code><br/>
|
|
<code>string</code>
|
|
</td>
|
|
<td>
|
|
<p><code>kubernetesVersion</code> is the target version of the control plane.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>controlPlaneEndpoint</code><br/>
|
|
<code>string</code>
|
|
</td>
|
|
<td>
|
|
<p><code>controlPlaneEndpoint</code> sets a stable IP address or DNS name for the control plane;
|
|
It can be a valid IP address or a RFC-1123 DNS subdomain, both with optional TCP port.
|
|
In case the <code>controlPlaneEndpoint</code> is not specified, the <code>advertiseAddress</code> + <code>bindPort</code>
|
|
are used; in case the <code>controlPlaneEndpoint</code> is specified but without a TCP port,
|
|
the <code>bindPort</code> is used.
|
|
Possible usages are:</p>
|
|
<ul>
|
|
<li>In a cluster with more than one control plane instances, this field should be
|
|
assigned the address of the external load balancer in front of the
|
|
control plane instances.</li>
|
|
<li>In environments with enforced node recycling, the <code>controlPlaneEndpoint</code>
|
|
could be used for assigning a stable DNS to the control plane.</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>apiServer</code><br/>
|
|
<a href="#kubeadm-k8s-io-v1beta4-APIServer"><code>APIServer</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>apiServer</code> contains extra settings for the API server.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>controllerManager</code><br/>
|
|
<a href="#kubeadm-k8s-io-v1beta4-ControlPlaneComponent"><code>ControlPlaneComponent</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>controllerManager</code> contains extra settings for the controller manager.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>scheduler</code><br/>
|
|
<a href="#kubeadm-k8s-io-v1beta4-ControlPlaneComponent"><code>ControlPlaneComponent</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>scheduler</code> contains extra settings for the scheduler.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>dns</code><br/>
|
|
<a href="#kubeadm-k8s-io-v1beta4-DNS"><code>DNS</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>dns</code> defines the options for the DNS add-on installed in the cluster.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>proxy</code> <B>[Required]</B><br/>
|
|
<a href="#kubeadm-k8s-io-v1beta4-Proxy"><code>Proxy</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>proxy</code> defines the options for the proxy add-on installed in the cluster.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>certificatesDir</code><br/>
|
|
<code>string</code>
|
|
</td>
|
|
<td>
|
|
<p><code>certificatesDir</code> specifies where to store or look for all required certificates.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>imageRepository</code><br/>
|
|
<code>string</code>
|
|
</td>
|
|
<td>
|
|
<p><code>imageRepository</code> sets the container registry to pull images from.
|
|
If empty, <code>registry.k8s.io</code> will be used by default.
|
|
In case of kubernetes version is a CI build (kubernetes version starts with <code>ci/</code>)
|
|
<code>gcr.io/k8s-staging-ci-images</code> will be used as a default for control plane components
|
|
and for kube-proxy, while <code>registry.k8s.io</code> will be used for all the other images.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>featureGates</code><br/>
|
|
<code>map[string]bool</code>
|
|
</td>
|
|
<td>
|
|
<p><code>featureGates</code> contains the feature gates enabled by the user.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>clusterName</code><br/>
|
|
<code>string</code>
|
|
</td>
|
|
<td>
|
|
<p>The cluster name.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>encryptionAlgorithm</code><br/>
|
|
<a href="#kubeadm-k8s-io-v1beta4-EncryptionAlgorithmType"><code>EncryptionAlgorithmType</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>encryptionAlgorithm</code> holds the type of asymmetric encryption algorithm used for keys and
|
|
certificates. Can be <code>"RSA"</code> (default algorithm, key size is 2048) or <code>"ECDSA"</code> (uses the
|
|
P-256 elliptic curve).</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>certificateValidityPeriod</code><br/>
|
|
<a href="https://pkg.go.dev/k8s.io/apimachinery/pkg/apis/meta/v1#Duration"><code>meta/v1.Duration</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>certificateValidityPeriod</code> specifies the validity period for a non-CA certificate generated by kubeadm.
|
|
Default value: `8760h`` (365 days * 24 hours = 1 year)</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>caCertificateValidityPeriod</code><br/>
|
|
<a href="https://pkg.go.dev/k8s.io/apimachinery/pkg/apis/meta/v1#Duration"><code>meta/v1.Duration</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>caCertificateValidityPeriod</code> specifies the validity period for a CA certificate generated by kubeadm.
|
|
Default value: <code>87600h</code> (365 days * 24 hours * 10 = 10 years)</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
## `InitConfiguration` {#kubeadm-k8s-io-v1beta4-InitConfiguration}
|
|
|
|
|
|
|
|
<p>InitConfiguration contains a list of elements that is specific "kubeadm init"-only runtime
|
|
information.
|
|
<code>kubeadm init</code>-only information. These fields are solely used the first time <code>kubeadm init</code> runs.
|
|
After that, the information in the fields IS NOT uploaded to the <code>kubeadm-config</code> ConfigMap
|
|
that is used by <code>kubeadm upgrade</code> for instance. These fields must be omitempty.</p>
|
|
|
|
|
|
<table class="table">
|
|
<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
|
|
<tbody>
|
|
|
|
<tr><td><code>apiVersion</code><br/>string</td><td><code>kubeadm.k8s.io/v1beta4</code></td></tr>
|
|
<tr><td><code>kind</code><br/>string</td><td><code>InitConfiguration</code></td></tr>
|
|
|
|
|
|
<tr><td><code>bootstrapTokens</code><br/>
|
|
<a href="#BootstrapToken"><code>[]BootstrapToken</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>bootstrapTokens</code> is respected at <code>kubeadm init</code> time and describes a set of Bootstrap Tokens to create.
|
|
This information IS NOT uploaded to the kubeadm cluster configmap, partly because of its sensitive nature</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>dryRun</code> <B>[Required]</B><br/>
|
|
<code>bool</code>
|
|
</td>
|
|
<td>
|
|
<p><code>dryRun</code> tells if the dry run mode is enabled, don't apply any change in dry run mode,
|
|
just out put what would be done.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>nodeRegistration</code><br/>
|
|
<a href="#kubeadm-k8s-io-v1beta4-NodeRegistrationOptions"><code>NodeRegistrationOptions</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>nodeRegistration</code> holds fields that relate to registering the new control-plane node
|
|
to the cluster.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>localAPIEndpoint</code><br/>
|
|
<a href="#kubeadm-k8s-io-v1beta4-APIEndpoint"><code>APIEndpoint</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>localAPIEndpoint</code> represents the endpoint of the API server instance that's deployed on this
|
|
control plane node. In HA setups, this differs from <code>ClusterConfiguration.controlPlaneEndpoint</code>
|
|
in the sense that <code>controlPlaneEndpoint</code> is the global endpoint for the cluster, which then
|
|
loadbalances the requests to each individual API server.
|
|
This configuration object lets you customize what IP/DNS name and port the local API server
|
|
advertises it's accessible on. By default, kubeadm tries to auto-detect the IP of the default
|
|
interface and use that, but in case that process fails you may set the desired value here.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>certificateKey</code><br/>
|
|
<code>string</code>
|
|
</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.
|
|
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/>
|
|
<code>[]string</code>
|
|
</td>
|
|
<td>
|
|
<p><code>skipPhases</code> is a list of phases to skip during command execution.
|
|
The list of phases can be obtained with the <code>kubeadm init --help</code> command.
|
|
The flag <code>--skip-phases</code> takes precedence over this field.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>patches</code><br/>
|
|
<a href="#kubeadm-k8s-io-v1beta4-Patches"><code>Patches</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>patches</code> contains options related to applying patches to components deployed by kubeadm during
|
|
<code>kubeadm init</code>.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>timeouts</code><br/>
|
|
<a href="#kubeadm-k8s-io-v1beta4-Timeouts"><code>Timeouts</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>timeouts</code> holds various timeouts that apply to kubeadm commands.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
## `JoinConfiguration` {#kubeadm-k8s-io-v1beta4-JoinConfiguration}
|
|
|
|
|
|
|
|
<p>JoinConfiguration contains elements describing a particular node.</p>
|
|
|
|
|
|
<table class="table">
|
|
<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
|
|
<tbody>
|
|
|
|
<tr><td><code>apiVersion</code><br/>string</td><td><code>kubeadm.k8s.io/v1beta4</code></td></tr>
|
|
<tr><td><code>kind</code><br/>string</td><td><code>JoinConfiguration</code></td></tr>
|
|
|
|
|
|
<tr><td><code>dryRun</code><br/>
|
|
<code>bool</code>
|
|
</td>
|
|
<td>
|
|
<p><code>dryRun</code> tells if the dry run mode is enabled, don't apply any change if it is set,
|
|
just output what would be done.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>nodeRegistration</code><br/>
|
|
<a href="#kubeadm-k8s-io-v1beta4-NodeRegistrationOptions"><code>NodeRegistrationOptions</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>nodeRegistration</code> holds fields that relate to registering the new control-plane
|
|
node to the cluster</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>caCertPath</code><br/>
|
|
<code>string</code>
|
|
</td>
|
|
<td>
|
|
<p><code>caCertPath</code> is the path to the SSL certificate authority used to secure comunications
|
|
between node and control-plane.
|
|
Defaults to "/etc/kubernetes/pki/ca.crt".</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>discovery</code> <B>[Required]</B><br/>
|
|
<a href="#kubeadm-k8s-io-v1beta4-Discovery"><code>Discovery</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>discovery</code> specifies the options for the kubelet to use during the TLS bootstrap process.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>controlPlane</code><br/>
|
|
<a href="#kubeadm-k8s-io-v1beta4-JoinControlPlane"><code>JoinControlPlane</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>controlPlane</code> defines the additional control plane instance to be deployed on the
|
|
joining node. If nil, no additional control plane instance will be deployed.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>skipPhases</code><br/>
|
|
<code>[]string</code>
|
|
</td>
|
|
<td>
|
|
<p><code>skipPhases</code> is a list of phases to skip during command execution.
|
|
The list of phases can be obtained with the <code>kubeadm join --help</code> command.
|
|
The flag <code>--skip-phases</code> takes precedence over this field.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>patches</code><br/>
|
|
<a href="#kubeadm-k8s-io-v1beta4-Patches"><code>Patches</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>patches</code> contains options related to applying patches to components deployed
|
|
by kubeadm during <code>kubeadm join</code>.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>timeouts</code><br/>
|
|
<a href="#kubeadm-k8s-io-v1beta4-Timeouts"><code>Timeouts</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>timeouts</code> holds various timeouts that apply to kubeadm commands.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
## `ResetConfiguration` {#kubeadm-k8s-io-v1beta4-ResetConfiguration}
|
|
|
|
|
|
|
|
<p>ResetConfiguration contains a list of fields that are specifically <code>kubeadm reset</code>-only
|
|
runtime information.</p>
|
|
|
|
|
|
<table class="table">
|
|
<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
|
|
<tbody>
|
|
|
|
<tr><td><code>apiVersion</code><br/>string</td><td><code>kubeadm.k8s.io/v1beta4</code></td></tr>
|
|
<tr><td><code>kind</code><br/>string</td><td><code>ResetConfiguration</code></td></tr>
|
|
|
|
|
|
<tr><td><code>cleanupTmpDir</code><br/>
|
|
<code>bool</code>
|
|
</td>
|
|
<td>
|
|
<p><code>cleanupTmpDir</code> specifies whether the "/etc/kubernetes/tmp" directory should be cleaned
|
|
during the reset process.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>certificatesDir</code><br/>
|
|
<code>string</code>
|
|
</td>
|
|
<td>
|
|
<p><code>certificatesDir</code> specifies the directory where the certificates are stored.
|
|
If specified, it will be cleaned during the reset process.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>criSocket</code><br/>
|
|
<code>string</code>
|
|
</td>
|
|
<td>
|
|
<p><code>criSocket</code> is used to retrieve container runtime inforomation and used for the
|
|
removal of the containers.
|
|
If <code>criSocket</code> is not specified by flag or config file, kubeadm will try to detect
|
|
one valid CRI socket instead.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>dryRun</code><br/>
|
|
<code>bool</code>
|
|
</td>
|
|
<td>
|
|
<p><code>dryRun</code> tells if the dry run mode is enabled, don't apply any change if it is set
|
|
and just output what would be done.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>force</code><br/>
|
|
<code>bool</code>
|
|
</td>
|
|
<td>
|
|
<p>The <code>force</code> flag instructs kubeadm to reset the node without prompting for confirmation.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>ignorePreflightErrors</code><br/>
|
|
<code>[]string</code>
|
|
</td>
|
|
<td>
|
|
<p><code>ignorePreflightErrors</code> provides a list of pre-flight errors to be ignored during
|
|
the reset process, e.g. <code>IsPrivilegedUser,Swap</code>.
|
|
Value <code>all</code> ignores errors from all checks.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>skipPhases</code><br/>
|
|
<code>[]string</code>
|
|
</td>
|
|
<td>
|
|
<p><code>skipPhases</code> is a list of phases to skip during command execution.
|
|
The list of phases can be obtained with the <code>kubeadm reset phase --help</code> command.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>unmountFlags</code><br/>
|
|
<code>[]string</code>
|
|
</td>
|
|
<td>
|
|
<p><code>unmountFlags</code> is a list of <code>unmount2()</code> syscall flags that kubeadm can use when unmounting
|
|
directories during "reset". This flag can be one of: <code>"MNT_FORCE"</code>, <code>"MNT_DETACH"</code>,
|
|
<code>"MNT_EXPIRE"</code>, <code>"UMOUNT_NOFOLLOW"</code>. By default this list is empty.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>timeouts</code><br/>
|
|
<a href="#kubeadm-k8s-io-v1beta4-Timeouts"><code>Timeouts</code></a>
|
|
</td>
|
|
<td>
|
|
<p>Timeouts holds various timeouts that apply to kubeadm commands.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
## `UpgradeConfiguration` {#kubeadm-k8s-io-v1beta4-UpgradeConfiguration}
|
|
|
|
|
|
|
|
<p>UpgradeConfiguration contains a list of options that are specific to <code>kubeadm upgrade</code> subcommands.</p>
|
|
|
|
|
|
<table class="table">
|
|
<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
|
|
<tbody>
|
|
|
|
<tr><td><code>apiVersion</code><br/>string</td><td><code>kubeadm.k8s.io/v1beta4</code></td></tr>
|
|
<tr><td><code>kind</code><br/>string</td><td><code>UpgradeConfiguration</code></td></tr>
|
|
|
|
|
|
<tr><td><code>apply</code><br/>
|
|
<a href="#kubeadm-k8s-io-v1beta4-UpgradeApplyConfiguration"><code>UpgradeApplyConfiguration</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>apply</code> holds a list of options that are specific to the <code>kubeadm upgrade apply</code> command.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>diff</code><br/>
|
|
<a href="#kubeadm-k8s-io-v1beta4-UpgradeDiffConfiguration"><code>UpgradeDiffConfiguration</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>diff</code> holds a list of options that are specific to the <code>kubeadm upgrade diff</code> command.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>node</code><br/>
|
|
<a href="#kubeadm-k8s-io-v1beta4-UpgradeNodeConfiguration"><code>UpgradeNodeConfiguration</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>node</code> holds a list of options that are specific to the <code>kubeadm upgrade node</code> command.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>plan</code><br/>
|
|
<a href="#kubeadm-k8s-io-v1beta4-UpgradePlanConfiguration"><code>UpgradePlanConfiguration</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>plan</code> holds a list of options that are specific to the <code>kubeadm upgrade plan</code> command.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>timeouts</code><br/>
|
|
<a href="#kubeadm-k8s-io-v1beta4-Timeouts"><code>Timeouts</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>timeouts</code> holds various timeouts that apply to kubeadm commands.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
## `APIEndpoint` {#kubeadm-k8s-io-v1beta4-APIEndpoint}
|
|
|
|
|
|
**Appears in:**
|
|
|
|
- [InitConfiguration](#kubeadm-k8s-io-v1beta4-InitConfiguration)
|
|
|
|
- [JoinControlPlane](#kubeadm-k8s-io-v1beta4-JoinControlPlane)
|
|
|
|
|
|
<p>APIEndpoint struct contains elements of API server instance deployed on a node.</p>
|
|
|
|
|
|
<table class="table">
|
|
<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
|
|
<tbody>
|
|
|
|
|
|
<tr><td><code>advertiseAddress</code><br/>
|
|
<code>string</code>
|
|
</td>
|
|
<td>
|
|
<p><code>dvertiseAddress</code> sets the IP address for the API server to advertise.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>bindPort</code><br/>
|
|
<code>int32</code>
|
|
</td>
|
|
<td>
|
|
<p><code>bindPort</code> sets the secure port for the API Server to bind to.
|
|
Defaults to 6443.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
## `APIServer` {#kubeadm-k8s-io-v1beta4-APIServer}
|
|
|
|
|
|
**Appears in:**
|
|
|
|
- [ClusterConfiguration](#kubeadm-k8s-io-v1beta4-ClusterConfiguration)
|
|
|
|
|
|
<p>APIServer holds settings necessary for API server deployments in the cluster</p>
|
|
|
|
|
|
<table class="table">
|
|
<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
|
|
<tbody>
|
|
|
|
|
|
<tr><td><code>ControlPlaneComponent</code> <B>[Required]</B><br/>
|
|
<a href="#kubeadm-k8s-io-v1beta4-ControlPlaneComponent"><code>ControlPlaneComponent</code></a>
|
|
</td>
|
|
<td>(Members of <code>ControlPlaneComponent</code> are embedded into this type.)
|
|
<span class="text-muted">No description provided.</span></td>
|
|
</tr>
|
|
<tr><td><code>certSANs</code><br/>
|
|
<code>[]string</code>
|
|
</td>
|
|
<td>
|
|
<p><code>certSANs</code> sets extra Subject Alternative Names (SANs) for the API Server signing
|
|
certificate.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
## `Arg` {#kubeadm-k8s-io-v1beta4-Arg}
|
|
|
|
|
|
**Appears in:**
|
|
|
|
- [ControlPlaneComponent](#kubeadm-k8s-io-v1beta4-ControlPlaneComponent)
|
|
|
|
- [LocalEtcd](#kubeadm-k8s-io-v1beta4-LocalEtcd)
|
|
|
|
- [NodeRegistrationOptions](#kubeadm-k8s-io-v1beta4-NodeRegistrationOptions)
|
|
|
|
|
|
<p>Arg represents an argument with a name and a value.</p>
|
|
|
|
|
|
<table class="table">
|
|
<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
|
|
<tbody>
|
|
|
|
|
|
<tr><td><code>name</code> <B>[Required]</B><br/>
|
|
<code>string</code>
|
|
</td>
|
|
<td>
|
|
<p>The name of the argument.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>value</code> <B>[Required]</B><br/>
|
|
<code>string</code>
|
|
</td>
|
|
<td>
|
|
<p>The value of the argument.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
## `BootstrapTokenDiscovery` {#kubeadm-k8s-io-v1beta4-BootstrapTokenDiscovery}
|
|
|
|
|
|
**Appears in:**
|
|
|
|
- [Discovery](#kubeadm-k8s-io-v1beta4-Discovery)
|
|
|
|
|
|
<p>BootstrapTokenDiscovery is used to set the options for bootstrap token based discovery.</p>
|
|
|
|
|
|
<table class="table">
|
|
<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
|
|
<tbody>
|
|
|
|
|
|
<tr><td><code>token</code> <B>[Required]</B><br/>
|
|
<code>string</code>
|
|
</td>
|
|
<td>
|
|
<p><code>token</code> is a token used to validate cluster information fetched from the
|
|
control-plane.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>apiServerEndpoint</code><br/>
|
|
<code>string</code>
|
|
</td>
|
|
<td>
|
|
<p><code>apiServerEndpoint</code> is an IP or domain name to the API server from which
|
|
information will be fetched.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>caCertHashes</code><br/>
|
|
<code>[]string</code>
|
|
</td>
|
|
<td>
|
|
<p><code>caCertHashes</code> specifies a set of public key pins to verify when token-based discovery
|
|
is used. The root CA found during discovery must match one of these values.
|
|
Specifying an empty set disables root CA pinning, which can be unsafe.
|
|
Each hash is specified as <code><type>:<value></code>, where the only currently supported type is
|
|
"sha256". This is a hex-encoded SHA-256 hash of the Subject Public Key Info (SPKI)
|
|
object in DER-encoded ASN.1. These hashes can be // calculated using, for example, OpenSSL.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>unsafeSkipCAVerification</code><br/>
|
|
<code>bool</code>
|
|
</td>
|
|
<td>
|
|
<p><code>unsafeSkipCAVerification</code> allows token-based discovery without CA verification
|
|
via <code>caCertHashes</code>. This can weaken the security of kubeadm since other nodes can
|
|
impersonate the control-plane.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
## `ControlPlaneComponent` {#kubeadm-k8s-io-v1beta4-ControlPlaneComponent}
|
|
|
|
|
|
**Appears in:**
|
|
|
|
- [ClusterConfiguration](#kubeadm-k8s-io-v1beta4-ClusterConfiguration)
|
|
|
|
- [APIServer](#kubeadm-k8s-io-v1beta4-APIServer)
|
|
|
|
|
|
<p>ControlPlaneComponent holds settings common to control plane component of the cluster</p>
|
|
|
|
|
|
<table class="table">
|
|
<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
|
|
<tbody>
|
|
|
|
|
|
<tr><td><code>extraArgs</code><br/>
|
|
<a href="#kubeadm-k8s-io-v1beta4-Arg"><code>[]Arg</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>extraArgs</code> is an extra set of flags to pass to the control plane component.
|
|
An argument name in this list is the flag name as it appears on the
|
|
command line except without leading dash(es). Extra arguments will override existing
|
|
default arguments. Duplicate extra arguments are allowed.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>extraVolumes</code><br/>
|
|
<a href="#kubeadm-k8s-io-v1beta4-HostPathMount"><code>[]HostPathMount</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>extraVolumes</code> is an extra set of host volumes, mounted to the control plane component.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>extraEnvs</code><br/>
|
|
<a href="#kubeadm-k8s-io-v1beta4-EnvVar"><code>[]EnvVar</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>extraEnvs</code> is an extra set of environment variables to pass to the control plane component.
|
|
Environment variables passed using <code>extraEnvs</code> will override any existing environment variables,
|
|
or <code>*_proxy</code> environment variables that kubeadm adds by default.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
## `DNS` {#kubeadm-k8s-io-v1beta4-DNS}
|
|
|
|
|
|
**Appears in:**
|
|
|
|
- [ClusterConfiguration](#kubeadm-k8s-io-v1beta4-ClusterConfiguration)
|
|
|
|
|
|
<p>DNS defines the DNS addon that should be used in the cluster</p>
|
|
|
|
|
|
<table class="table">
|
|
<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
|
|
<tbody>
|
|
|
|
|
|
<tr><td><code>ImageMeta</code> <B>[Required]</B><br/>
|
|
<a href="#kubeadm-k8s-io-v1beta4-ImageMeta"><code>ImageMeta</code></a>
|
|
</td>
|
|
<td>(Members of <code>ImageMeta</code> are embedded into this type.)
|
|
<p><code>imageMeta</code> allows to customize the image used for the DNS addon.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>disabled</code> <B>[Required]</B><br/>
|
|
<code>bool</code>
|
|
</td>
|
|
<td>
|
|
<p><code>disabled</code> specifies whether to disable this addon in the cluster.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
## `Discovery` {#kubeadm-k8s-io-v1beta4-Discovery}
|
|
|
|
|
|
**Appears in:**
|
|
|
|
- [JoinConfiguration](#kubeadm-k8s-io-v1beta4-JoinConfiguration)
|
|
|
|
|
|
<p>Discovery specifies the options for the kubelet to use during the TLS Bootstrap process</p>
|
|
|
|
|
|
<table class="table">
|
|
<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
|
|
<tbody>
|
|
|
|
|
|
<tr><td><code>bootstrapToken</code><br/>
|
|
<a href="#kubeadm-k8s-io-v1beta4-BootstrapTokenDiscovery"><code>BootstrapTokenDiscovery</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>bootstrapToken</code> is used to set the options for bootstrap token based discovery.
|
|
<code>bootstrapToken</code> and <code>file</code> are mutually exclusive.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>file</code><br/>
|
|
<a href="#kubeadm-k8s-io-v1beta4-FileDiscovery"><code>FileDiscovery</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>file</code> is used to specify a file or URL to a kubeconfig file from which to load
|
|
cluster information. <code>bootstrapToken</code> and <code>file</code> are mutually exclusive.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>tlsBootstrapToken</code><br/>
|
|
<code>string</code>
|
|
</td>
|
|
<td>
|
|
<p><code>tlsBootstrapToken</code> is a token used for TLS bootstrapping.
|
|
If <code>bootstrapToken</code> is set, this field is defaulted to <code>bootstrapToken.token</code>, but
|
|
can be overridden. If <code>file</code> is set, this field <strong>must be set</strong> in case the KubeConfigFile
|
|
does not contain any other authentication information.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
## `EncryptionAlgorithmType` {#kubeadm-k8s-io-v1beta4-EncryptionAlgorithmType}
|
|
|
|
(Alias of `string`)
|
|
|
|
**Appears in:**
|
|
|
|
- [ClusterConfiguration](#kubeadm-k8s-io-v1beta4-ClusterConfiguration)
|
|
|
|
|
|
<p>EncryptionAlgorithmType can define an asymmetric encryption algorithm type.</p>
|
|
|
|
|
|
|
|
|
|
## `EnvVar` {#kubeadm-k8s-io-v1beta4-EnvVar}
|
|
|
|
|
|
**Appears in:**
|
|
|
|
- [ControlPlaneComponent](#kubeadm-k8s-io-v1beta4-ControlPlaneComponent)
|
|
|
|
- [LocalEtcd](#kubeadm-k8s-io-v1beta4-LocalEtcd)
|
|
|
|
|
|
<p>EnvVar represents an environment variable present in a Container.</p>
|
|
|
|
|
|
<table class="table">
|
|
<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
|
|
<tbody>
|
|
|
|
|
|
<tr><td><code>EnvVar</code> <B>[Required]</B><br/>
|
|
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#envvar-v1-core"><code>core/v1.EnvVar</code></a>
|
|
</td>
|
|
<td>(Members of <code>EnvVar</code> are embedded into this type.)
|
|
<span class="text-muted">No description provided.</span></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
## `Etcd` {#kubeadm-k8s-io-v1beta4-Etcd}
|
|
|
|
|
|
**Appears in:**
|
|
|
|
- [ClusterConfiguration](#kubeadm-k8s-io-v1beta4-ClusterConfiguration)
|
|
|
|
|
|
<p>Etcd contains elements describing Etcd configuration.</p>
|
|
|
|
|
|
<table class="table">
|
|
<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
|
|
<tbody>
|
|
|
|
|
|
<tr><td><code>local</code><br/>
|
|
<a href="#kubeadm-k8s-io-v1beta4-LocalEtcd"><code>LocalEtcd</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>local</code> provides configuration knobs for configuring the local etcd instance.
|
|
<code>local</code> and <code>external</code> are mutually exclusive.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>external</code><br/>
|
|
<a href="#kubeadm-k8s-io-v1beta4-ExternalEtcd"><code>ExternalEtcd</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>external</code> describes how to connect to an external etcd cluster.
|
|
<code>local</code> and <code>external</code> are mutually exclusive.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
## `ExternalEtcd` {#kubeadm-k8s-io-v1beta4-ExternalEtcd}
|
|
|
|
|
|
**Appears in:**
|
|
|
|
- [Etcd](#kubeadm-k8s-io-v1beta4-Etcd)
|
|
|
|
|
|
<p>ExternalEtcd describes an external etcd cluster.
|
|
Kubeadm has no knowledge of where certificate files live and they must be supplied.</p>
|
|
|
|
|
|
<table class="table">
|
|
<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
|
|
<tbody>
|
|
|
|
|
|
<tr><td><code>endpoints</code> <B>[Required]</B><br/>
|
|
<code>[]string</code>
|
|
</td>
|
|
<td>
|
|
<p><code>endpoints</code> contains the list of etcd members.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>caFile</code> <B>[Required]</B><br/>
|
|
<code>string</code>
|
|
</td>
|
|
<td>
|
|
<p><code>caFile</code> is an SSL Certificate Authority (CA) file used to secure etcd communication.
|
|
Required if using a TLS connection.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>certFile</code> <B>[Required]</B><br/>
|
|
<code>string</code>
|
|
</td>
|
|
<td>
|
|
<p><code>certFile</code> is an SSL certification file used to secure etcd communication.
|
|
Required if using a TLS connection.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>keyFile</code> <B>[Required]</B><br/>
|
|
<code>string</code>
|
|
</td>
|
|
<td>
|
|
<p><code>keyFile</code> is an SSL key file used to secure etcd communication.
|
|
Required if using a TLS connection.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
## `FileDiscovery` {#kubeadm-k8s-io-v1beta4-FileDiscovery}
|
|
|
|
|
|
**Appears in:**
|
|
|
|
- [Discovery](#kubeadm-k8s-io-v1beta4-Discovery)
|
|
|
|
|
|
<p>FileDiscovery is used to specify a file or URL to a kubeconfig file from which to load
|
|
cluster information.</p>
|
|
|
|
|
|
<table class="table">
|
|
<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
|
|
<tbody>
|
|
|
|
|
|
<tr><td><code>kubeConfigPath</code> <B>[Required]</B><br/>
|
|
<code>string</code>
|
|
</td>
|
|
<td>
|
|
<p><code>kubeConfigPath</code> is used to specify the actual file path or URL to the kubeconfig
|
|
file from which to load cluster information.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
## `HostPathMount` {#kubeadm-k8s-io-v1beta4-HostPathMount}
|
|
|
|
|
|
**Appears in:**
|
|
|
|
- [ControlPlaneComponent](#kubeadm-k8s-io-v1beta4-ControlPlaneComponent)
|
|
|
|
|
|
<p>HostPathMount contains elements describing volumes that are mounted from the host.</p>
|
|
|
|
|
|
<table class="table">
|
|
<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
|
|
<tbody>
|
|
|
|
|
|
<tr><td><code>name</code> <B>[Required]</B><br/>
|
|
<code>string</code>
|
|
</td>
|
|
<td>
|
|
<p><code>name</code> is the name of the volume inside the Pod template.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>hostPath</code> <B>[Required]</B><br/>
|
|
<code>string</code>
|
|
</td>
|
|
<td>
|
|
<p><code>hostPath</code> is the path in the host that will be mounted inside the Pod.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>mountPath</code> <B>[Required]</B><br/>
|
|
<code>string</code>
|
|
</td>
|
|
<td>
|
|
<p><code>mountPath</code> is the path inside the Pod where <code>hostPath</code> will be mounted.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>readOnly</code><br/>
|
|
<code>bool</code>
|
|
</td>
|
|
<td>
|
|
<p><code>readOnly</code> controls write access to the volume.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>pathType</code><br/>
|
|
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#hostpathtype-v1-core"><code>core/v1.HostPathType</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>pathType</code> is the type of the <code>hostPath</code>.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
## `ImageMeta` {#kubeadm-k8s-io-v1beta4-ImageMeta}
|
|
|
|
|
|
**Appears in:**
|
|
|
|
- [DNS](#kubeadm-k8s-io-v1beta4-DNS)
|
|
|
|
- [LocalEtcd](#kubeadm-k8s-io-v1beta4-LocalEtcd)
|
|
|
|
|
|
<p>ImageMeta allows to customize the image used for components that are not
|
|
originated from the Kubernetes/Kubernetes release process</p>
|
|
|
|
|
|
<table class="table">
|
|
<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
|
|
<tbody>
|
|
|
|
|
|
<tr><td><code>imageRepository</code><br/>
|
|
<code>string</code>
|
|
</td>
|
|
<td>
|
|
<p><code>imageRepository</code> sets the container registry to pull images from.
|
|
if not set, the <code>imageRepository</code> defined in ClusterConfiguration will be used instead.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>imageTag</code><br/>
|
|
<code>string</code>
|
|
</td>
|
|
<td>
|
|
<p><code>imageTag</code> allows to specify a tag for the image.
|
|
In case this value is set, kubeadm does not change automatically the version of
|
|
the above components during upgrades.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
## `JoinControlPlane` {#kubeadm-k8s-io-v1beta4-JoinControlPlane}
|
|
|
|
|
|
**Appears in:**
|
|
|
|
- [JoinConfiguration](#kubeadm-k8s-io-v1beta4-JoinConfiguration)
|
|
|
|
|
|
<p>JoinControlPlane contains elements describing an additional control plane instance to be deployed on the joining node.</p>
|
|
|
|
|
|
<table class="table">
|
|
<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
|
|
<tbody>
|
|
|
|
|
|
<tr><td><code>localAPIEndpoint</code><br/>
|
|
<a href="#kubeadm-k8s-io-v1beta4-APIEndpoint"><code>APIEndpoint</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>localAPIEndpoint</code> represents the endpoint of the API server instance to be
|
|
deployed on this node.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>certificateKey</code><br/>
|
|
<code>string</code>
|
|
</td>
|
|
<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.
|
|
The certificate key is a hex encoded string that is an AES key of size 32 bytes.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
## `LocalEtcd` {#kubeadm-k8s-io-v1beta4-LocalEtcd}
|
|
|
|
|
|
**Appears in:**
|
|
|
|
- [Etcd](#kubeadm-k8s-io-v1beta4-Etcd)
|
|
|
|
|
|
<p>LocalEtcd describes that kubeadm should run an etcd cluster locally.</p>
|
|
|
|
|
|
<table class="table">
|
|
<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
|
|
<tbody>
|
|
|
|
|
|
<tr><td><code>ImageMeta</code> <B>[Required]</B><br/>
|
|
<a href="#kubeadm-k8s-io-v1beta4-ImageMeta"><code>ImageMeta</code></a>
|
|
</td>
|
|
<td>(Members of <code>ImageMeta</code> are embedded into this type.)
|
|
<p>ImageMeta allows to customize the container used for etcd</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>dataDir</code> <B>[Required]</B><br/>
|
|
<code>string</code>
|
|
</td>
|
|
<td>
|
|
<p><code>dataDir</code> is the directory etcd will place its data.
|
|
Defaults to "/var/lib/etcd".</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>extraArgs</code> <B>[Required]</B><br/>
|
|
<a href="#kubeadm-k8s-io-v1beta4-Arg"><code>[]Arg</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>extraArgs</code> are extra arguments provided to the etcd binary when run
|
|
inside a static Pod. An argument name in this list is the flag name as
|
|
it appears on the command line except without leading dash(es).
|
|
Extra arguments will override existing default arguments.
|
|
Duplicate extra arguments are allowed.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>extraEnvs</code><br/>
|
|
<a href="#kubeadm-k8s-io-v1beta4-EnvVar"><code>[]EnvVar</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>extraEnvs</code> is an extra set of environment variables to pass to the
|
|
control plane component. Environment variables passed using <code>extraEnvs</code>
|
|
will override any existing environment variables, or <code>*_proxy</code> environment
|
|
variables that kubeadm adds by default.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>serverCertSANs</code><br/>
|
|
<code>[]string</code>
|
|
</td>
|
|
<td>
|
|
<p><code>serverCertSANs</code> sets extra Subject Alternative Names (SANs) for the etcd
|
|
server signing certificate.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>peerCertSANs</code><br/>
|
|
<code>[]string</code>
|
|
</td>
|
|
<td>
|
|
<p><code>peerCertSANs</code> sets extra Subject Alternative Names (SANs) for the etcd peer
|
|
signing certificate.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
## `Networking` {#kubeadm-k8s-io-v1beta4-Networking}
|
|
|
|
|
|
**Appears in:**
|
|
|
|
- [ClusterConfiguration](#kubeadm-k8s-io-v1beta4-ClusterConfiguration)
|
|
|
|
|
|
<p>Networking contains elements describing cluster's networking configuration.</p>
|
|
|
|
|
|
<table class="table">
|
|
<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
|
|
<tbody>
|
|
|
|
|
|
<tr><td><code>serviceSubnet</code><br/>
|
|
<code>string</code>
|
|
</td>
|
|
<td>
|
|
<p><code>serviceSubnet</code> is the subnet used by Kubernetes Services. Defaults to "10.96.0.0/12".</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>podSubnet</code><br/>
|
|
<code>string</code>
|
|
</td>
|
|
<td>
|
|
<p><code>podSubnet</code> is the subnet used by Pods.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>dnsDomain</code><br/>
|
|
<code>string</code>
|
|
</td>
|
|
<td>
|
|
<p><code>dnsDomain</code> is the dns domain used by Kubernetes Services. Defaults to "cluster.local".</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
## `NodeRegistrationOptions` {#kubeadm-k8s-io-v1beta4-NodeRegistrationOptions}
|
|
|
|
|
|
**Appears in:**
|
|
|
|
- [InitConfiguration](#kubeadm-k8s-io-v1beta4-InitConfiguration)
|
|
|
|
- [JoinConfiguration](#kubeadm-k8s-io-v1beta4-JoinConfiguration)
|
|
|
|
|
|
<p>NodeRegistrationOptions holds fields that relate to registering a new control-plane or
|
|
node to the cluster, either via <code>kubeadm init</code> or <code>kubeadm join</code>.</p>
|
|
|
|
|
|
<table class="table">
|
|
<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
|
|
<tbody>
|
|
|
|
|
|
<tr><td><code>name</code><br/>
|
|
<code>string</code>
|
|
</td>
|
|
<td>
|
|
<p><code>name</code> is the <code>.Metadata.Name</code> field of the Node API object that will be created in this
|
|
<code>kubeadm init</code> or <code>kubeadm join</code> operation.
|
|
This field is also used in the <code>CommonName</code> field of the kubelet's client certificate to
|
|
the API server.
|
|
Defaults to the hostname of the node if not provided.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>criSocket</code><br/>
|
|
<code>string</code>
|
|
</td>
|
|
<td>
|
|
<p><code>criSocket</code> is used to retrieve container runtime info.
|
|
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.31/#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.
|
|
If this field is unset, i.e. nil, it will be defaulted with a control-plane taint for control-plane nodes.
|
|
If you don't want to taint your control-plane node, set this field to an empty list,
|
|
i.e. <code>taints: []</code> in the YAML file. This field is solely used for Node registration.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>kubeletExtraArgs</code><br/>
|
|
<a href="#kubeadm-k8s-io-v1beta4-Arg"><code>[]Arg</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>kubeletExtraArgs</code> passes through extra arguments to the kubelet.
|
|
The arguments here are passed to the kubelet command line via the environment file
|
|
kubeadm writes at runtime for the kubelet to source.
|
|
This overrides the generic base-level configuration in the <code>kubelet-config</code> ConfigMap.
|
|
Flags have higher priority when parsing. These values are local and specific to the node
|
|
kubeadm is executing on. An argument name in this list is the flag name as it appears on the
|
|
command line except without leading dash(es). Extra arguments will override existing
|
|
default arguments. Duplicate extra arguments are allowed.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>ignorePreflightErrors</code><br/>
|
|
<code>[]string</code>
|
|
</td>
|
|
<td>
|
|
<p><code>ignorePreflightErrors</code> provides a slice of pre-flight errors to be ignored when
|
|
the current node is registered, e.g. 'IsPrivilegedUser,Swap'.
|
|
Value 'all' ignores errors from all checks.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>imagePullPolicy</code><br/>
|
|
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#pullpolicy-v1-core"><code>core/v1.PullPolicy</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>imagePullPolicy</code> specifies the policy for image pulling during kubeadm <code>init</code> and
|
|
<code>join</code> operations.
|
|
The value of this field must be one of "Always", "IfNotPresent" or "Never".
|
|
If this field is unset kubeadm will default it to "IfNotPresent", or pull the required
|
|
images if not present on the host.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>imagePullSerial</code><br/>
|
|
<code>bool</code>
|
|
</td>
|
|
<td>
|
|
<p><code>imagePullSerial</code> specifies if image pulling performed by kubeadm must be done serially or in parallel.
|
|
Default: true</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
## `Patches` {#kubeadm-k8s-io-v1beta4-Patches}
|
|
|
|
|
|
**Appears in:**
|
|
|
|
- [InitConfiguration](#kubeadm-k8s-io-v1beta4-InitConfiguration)
|
|
|
|
- [JoinConfiguration](#kubeadm-k8s-io-v1beta4-JoinConfiguration)
|
|
|
|
- [UpgradeApplyConfiguration](#kubeadm-k8s-io-v1beta4-UpgradeApplyConfiguration)
|
|
|
|
- [UpgradeNodeConfiguration](#kubeadm-k8s-io-v1beta4-UpgradeNodeConfiguration)
|
|
|
|
|
|
<p>Patches contains options related to applying patches to components deployed by kubeadm.</p>
|
|
|
|
|
|
<table class="table">
|
|
<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
|
|
<tbody>
|
|
|
|
|
|
<tr><td><code>directory</code><br/>
|
|
<code>string</code>
|
|
</td>
|
|
<td>
|
|
<p><code>directory</code> is a path to a directory that contains files named
|
|
"target[suffix][+patchtype].extension".
|
|
For example, "kube-apiserver0+merge.yaml" or just "etcd.json". "target" can be one of
|
|
"kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd", "kubeletconfiguration",
|
|
"corednsdeployment".
|
|
"patchtype" can be one of "strategic", "merge" or "json" and they match the patch formats
|
|
supported by kubectl.
|
|
The default "patchtype" is "strategic". "extension" must be either "json" or "yaml".
|
|
"suffix" is an optional string that can be used to determine which patches are applied
|
|
first alpha-numerically.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
## `Proxy` {#kubeadm-k8s-io-v1beta4-Proxy}
|
|
|
|
|
|
**Appears in:**
|
|
|
|
- [ClusterConfiguration](#kubeadm-k8s-io-v1beta4-ClusterConfiguration)
|
|
|
|
|
|
<p>Proxy defines the proxy addon that should be used in the cluster.</p>
|
|
|
|
|
|
<table class="table">
|
|
<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
|
|
<tbody>
|
|
|
|
|
|
<tr><td><code>disabled</code> <B>[Required]</B><br/>
|
|
<code>bool</code>
|
|
</td>
|
|
<td>
|
|
<p><code>disabled</code> specifies whether to disable this addon in the cluster.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
## `Timeouts` {#kubeadm-k8s-io-v1beta4-Timeouts}
|
|
|
|
|
|
**Appears in:**
|
|
|
|
- [InitConfiguration](#kubeadm-k8s-io-v1beta4-InitConfiguration)
|
|
|
|
- [JoinConfiguration](#kubeadm-k8s-io-v1beta4-JoinConfiguration)
|
|
|
|
- [ResetConfiguration](#kubeadm-k8s-io-v1beta4-ResetConfiguration)
|
|
|
|
- [UpgradeConfiguration](#kubeadm-k8s-io-v1beta4-UpgradeConfiguration)
|
|
|
|
|
|
<p>Timeouts holds various timeouts that apply to kubeadm commands.</p>
|
|
|
|
|
|
<table class="table">
|
|
<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
|
|
<tbody>
|
|
|
|
|
|
<tr><td><code>controlPlaneComponentHealthCheck</code><br/>
|
|
<a href="https://pkg.go.dev/k8s.io/apimachinery/pkg/apis/meta/v1#Duration"><code>meta/v1.Duration</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>controlPlaneComponentHealthCheck</code> is the amount of time to wait for a control plane
|
|
component, such as the API server, to be healthy during <code>kubeadm init</code> and <code>kubeadm join</code>.
|
|
Default: 4m</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>kubeletHealthCheck</code><br/>
|
|
<a href="https://pkg.go.dev/k8s.io/apimachinery/pkg/apis/meta/v1#Duration"><code>meta/v1.Duration</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>kubeletHealthCheck</code> is the amount of time to wait for the kubelet to be healthy
|
|
during <code>kubeadm init</code> and <code>kubeadm join</code>.
|
|
Default: 4m</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>kubernetesAPICall</code><br/>
|
|
<a href="https://pkg.go.dev/k8s.io/apimachinery/pkg/apis/meta/v1#Duration"><code>meta/v1.Duration</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>kubernetesAPICall</code> is the amount of time to wait for the kubeadm client to complete a request to
|
|
the API server. This applies to all types of methods (GET, POST, etc).
|
|
Default: 1m</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>etcdAPICall</code><br/>
|
|
<a href="https://pkg.go.dev/k8s.io/apimachinery/pkg/apis/meta/v1#Duration"><code>meta/v1.Duration</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>etcdAPICall</code> is the amount of time to wait for the kubeadm etcd client to complete a request to
|
|
the etcd cluster.
|
|
Default: 2m</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>tlsBootstrap</code><br/>
|
|
<a href="https://pkg.go.dev/k8s.io/apimachinery/pkg/apis/meta/v1#Duration"><code>meta/v1.Duration</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>tlsBootstrap</code> is the amount of time to wait for the kubelet to complete TLS bootstrap
|
|
for a joining node.
|
|
Default: 5m</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>discovery</code><br/>
|
|
<a href="https://pkg.go.dev/k8s.io/apimachinery/pkg/apis/meta/v1#Duration"><code>meta/v1.Duration</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>discovery</code> is the amount of time to wait for kubeadm to validate the API server identity
|
|
for a joining node.
|
|
Default: 5m</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>upgradeManifests</code> <B>[Required]</B><br/>
|
|
<a href="https://pkg.go.dev/k8s.io/apimachinery/pkg/apis/meta/v1#Duration"><code>meta/v1.Duration</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>upgradeManifests</code> is the timeout for upgrading static Pod manifests
|
|
Default: 5m</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
## `UpgradeApplyConfiguration` {#kubeadm-k8s-io-v1beta4-UpgradeApplyConfiguration}
|
|
|
|
|
|
**Appears in:**
|
|
|
|
- [UpgradeConfiguration](#kubeadm-k8s-io-v1beta4-UpgradeConfiguration)
|
|
|
|
|
|
<p>UpgradeApplyConfiguration contains a list of configurable options which are specific to the "kubeadm upgrade apply" command.</p>
|
|
|
|
|
|
<table class="table">
|
|
<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
|
|
<tbody>
|
|
|
|
|
|
<tr><td><code>kubernetesVersion</code><br/>
|
|
<code>string</code>
|
|
</td>
|
|
<td>
|
|
<p><code>kubernetesVersion</code> is the target version of the control plane.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>allowExperimentalUpgrades</code><br/>
|
|
<code>bool</code>
|
|
</td>
|
|
<td>
|
|
<p><code>allowExperimentalUpgrades</code> instructs kubeadm to show unstable versions of Kubernetes as an upgrade
|
|
alternative and allows upgrading to an alpha/beta/release candidate version of Kubernetes.
|
|
Default: false</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>allowRCUpgrades</code><br/>
|
|
<code>bool</code>
|
|
</td>
|
|
<td>
|
|
<p>Enable <code>allowRCUpgrades</code> will show release candidate versions of Kubernetes as an upgrade alternative and
|
|
allows upgrading to a release candidate version of Kubernetes.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>certificateRenewal</code><br/>
|
|
<code>bool</code>
|
|
</td>
|
|
<td>
|
|
<p><code>certificateRenewal</code> instructs kubeadm to execute certificate renewal during upgrades.
|
|
Defaults to true.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>dryRun</code><br/>
|
|
<code>bool</code>
|
|
</td>
|
|
<td>
|
|
<p><code>dryRun</code> tells if the dry run mode is enabled, don't apply any change if it is and just output
|
|
what would be done.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>etcdUpgrade</code><br/>
|
|
<code>bool</code>
|
|
</td>
|
|
<td>
|
|
<p><code>etcdUpgrade</code> instructs kubeadm to execute etcd upgrade during upgrades.
|
|
Defaults to true.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>forceUpgrade</code><br/>
|
|
<code>bool</code>
|
|
</td>
|
|
<td>
|
|
<p><code>forceUpgrade</code> flag instructs kubeadm to upgrade the cluster without prompting for confirmation.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>ignorePreflightErrors</code><br/>
|
|
<code>[]string</code>
|
|
</td>
|
|
<td>
|
|
<p><code>ignorePreflightErrors</code> provides a slice of pre-flight errors to be ignored during the upgrade process,
|
|
e.g. <code>IsPrivilegedUser,Swap</code>. Value <code>all</code> ignores errors from all checks.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>patches</code><br/>
|
|
<a href="#kubeadm-k8s-io-v1beta4-Patches"><code>Patches</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>patches</code> contains options related to applying patches to components deployed by kubeadm during <code>kubeadm upgrade</code>.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>printConfig</code><br/>
|
|
<code>bool</code>
|
|
</td>
|
|
<td>
|
|
<p><code>printConfig</code> specifies whether the configuration file that will be used in the upgrade should be printed or not.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>skipPhases</code> <B>[Required]</B><br/>
|
|
<code>[]string</code>
|
|
</td>
|
|
<td>
|
|
<p><code>skipPhases</code> is a list of phases to skip during command execution.
|
|
NOTE: This field is currently ignored for <code>kubeadm upgrade apply</code>, but in the future it will be supported.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>imagePullPolicy</code><br/>
|
|
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#pullpolicy-v1-core"><code>core/v1.PullPolicy</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>imagePullPolicy</code> specifies the policy for image pulling during <code>kubeadm upgrade apply</code> operations.
|
|
The value of this field must be one of "Always", "IfNotPresent" or "Never".
|
|
If this field is unset kubeadm will default it to "IfNotPresent", or pull the required images if not present on the host.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>imagePullSerial</code><br/>
|
|
<code>bool</code>
|
|
</td>
|
|
<td>
|
|
<p><code>imagePullSerial</code> specifies if image pulling performed by kubeadm must be done serially or in parallel.
|
|
Default: true</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
## `UpgradeDiffConfiguration` {#kubeadm-k8s-io-v1beta4-UpgradeDiffConfiguration}
|
|
|
|
|
|
**Appears in:**
|
|
|
|
- [UpgradeConfiguration](#kubeadm-k8s-io-v1beta4-UpgradeConfiguration)
|
|
|
|
|
|
<p>UpgradeDiffConfiguration contains a list of configurable options which are specific to the <code>kubeadm upgrade diff</code> command.</p>
|
|
|
|
|
|
<table class="table">
|
|
<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
|
|
<tbody>
|
|
|
|
|
|
<tr><td><code>kubernetesVersion</code><br/>
|
|
<code>string</code>
|
|
</td>
|
|
<td>
|
|
<p><code>kubernetesVersion</code> is the target version of the control plane.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>contextLines</code><br/>
|
|
<code>int</code>
|
|
</td>
|
|
<td>
|
|
<p><code>diffContextLines</code> is the number of lines of context in the diff.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
## `UpgradeNodeConfiguration` {#kubeadm-k8s-io-v1beta4-UpgradeNodeConfiguration}
|
|
|
|
|
|
**Appears in:**
|
|
|
|
- [UpgradeConfiguration](#kubeadm-k8s-io-v1beta4-UpgradeConfiguration)
|
|
|
|
|
|
<p>UpgradeNodeConfiguration contains a list of configurable options which are specific to the "kubeadm upgrade node" command.</p>
|
|
|
|
|
|
<table class="table">
|
|
<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
|
|
<tbody>
|
|
|
|
|
|
<tr><td><code>certificateRenewal</code><br/>
|
|
<code>bool</code>
|
|
</td>
|
|
<td>
|
|
<p><code>certificateRenewal</code> instructs kubeadm to execute certificate renewal during upgrades.
|
|
Defaults to true.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>dryRun</code><br/>
|
|
<code>bool</code>
|
|
</td>
|
|
<td>
|
|
<p><code>dryRun</code> tells if the dry run mode is enabled, don't apply any change if it is and just output what would be done.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>etcdUpgrade</code><br/>
|
|
<code>bool</code>
|
|
</td>
|
|
<td>
|
|
<p><code>etcdUpgrade</code> instructs kubeadm to execute etcd upgrade during upgrades.
|
|
Defaults to true.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>ignorePreflightErrors</code><br/>
|
|
<code>[]string</code>
|
|
</td>
|
|
<td>
|
|
<p><code>ignorePreflightErrors</code> provides a slice of pre-flight errors to be ignored during the upgrade process,
|
|
e.g. 'IsPrivilegedUser,Swap'. Value 'all' ignores errors from all checks.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>skipPhases</code><br/>
|
|
<code>[]string</code>
|
|
</td>
|
|
<td>
|
|
<p><code>skipPhases</code> is a list of phases to skip during command execution.
|
|
The list of phases can be obtained with the <code>kubeadm upgrade node phase --help</code> command.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>patches</code><br/>
|
|
<a href="#kubeadm-k8s-io-v1beta4-Patches"><code>Patches</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>patches</code> contains options related to applying patches to components deployed by kubeadm during <code>kubeadm upgrade</code>.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>imagePullPolicy</code><br/>
|
|
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#pullpolicy-v1-core"><code>core/v1.PullPolicy</code></a>
|
|
</td>
|
|
<td>
|
|
<p><code>imagePullPolicy</code> specifies the policy for image pulling during <code>kubeadm upgrade node</code> operations.
|
|
The value of this field must be one of "Always", "IfNotPresent" or "Never".
|
|
If this field is unset kubeadm will default it to "IfNotPresent", or pull the required images if not present on the host.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>imagePullSerial</code><br/>
|
|
<code>bool</code>
|
|
</td>
|
|
<td>
|
|
<p><code>imagePullSerial</code> specifies if image pulling performed by kubeadm must be done serially or in parallel.
|
|
Default: true</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
## `UpgradePlanConfiguration` {#kubeadm-k8s-io-v1beta4-UpgradePlanConfiguration}
|
|
|
|
|
|
**Appears in:**
|
|
|
|
- [UpgradeConfiguration](#kubeadm-k8s-io-v1beta4-UpgradeConfiguration)
|
|
|
|
|
|
<p>UpgradePlanConfiguration contains a list of configurable options which are specific to the "kubeadm upgrade plan" command.</p>
|
|
|
|
|
|
<table class="table">
|
|
<thead><tr><th width="30%">Field</th><th>Description</th></tr></thead>
|
|
<tbody>
|
|
|
|
|
|
<tr><td><code>kubernetesVersion</code> <B>[Required]</B><br/>
|
|
<code>string</code>
|
|
</td>
|
|
<td>
|
|
<p><code>kubernetesVersion</code> is the target version of the control plane.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>allowExperimentalUpgrades</code><br/>
|
|
<code>bool</code>
|
|
</td>
|
|
<td>
|
|
<p><code>allowExperimentalUpgrades</code> instructs kubeadm to show unstable versions of Kubernetes as an upgrade
|
|
alternative and allows upgrading to an alpha/beta/release candidate version of Kubernetes.
|
|
Default: false</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>allowRCUpgrades</code><br/>
|
|
<code>bool</code>
|
|
</td>
|
|
<td>
|
|
<p>Enable <code>allowRCUpgrades</code> will show release candidate versions of Kubernetes as an upgrade alternative and
|
|
allows upgrading to a release candidate version of Kubernetes.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>dryRun</code><br/>
|
|
<code>bool</code>
|
|
</td>
|
|
<td>
|
|
<p><code>dryRun</code> tells if the dry run mode is enabled, don't apply any change if it is and just output what would be done.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>ignorePreflightErrors</code><br/>
|
|
<code>[]string</code>
|
|
</td>
|
|
<td>
|
|
<p><code>ignorePreflightErrors</code> provides a slice of pre-flight errors to be ignored during the upgrade process,
|
|
e.g. 'IsPrivilegedUser,Swap'. Value 'all' ignores errors from all checks.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td><code>printConfig</code><br/>
|
|
<code>bool</code>
|
|
</td>
|
|
<td>
|
|
<p><code>printConfig</code> specifies whether the configuration file that will be used in the upgrade should be printed or not.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|