const ( // APIServerAdvertiseAddress flag sets the IP address the API Server will advertise it's listening on. Specify '0.0.0.0' to use the address of the default network interface. APIServerAdvertiseAddress = "apiserver-advertise-address" // APIServerBindPort flag sets the port for the API Server to bind to. APIServerBindPort = "apiserver-bind-port" // APIServerCertSANs flag sets extra Subject Alternative Names (SANs) to use for the API Server serving certificate. Can be both IP addresses and DNS names. APIServerCertSANs = "apiserver-cert-extra-sans" // APIServerExtraArgs flag sets a extra flags to pass to the API Server or override default ones in form of <flagname>=<value>. APIServerExtraArgs = "apiserver-extra-args" // CertificatesDir flag sets the path where to save and read the certificates. CertificatesDir = "cert-dir" // CfgPath flag sets the path to kubeadm config file. CfgPath = "config" // ControllerManagerExtraArgs flag sets extra flags to pass to the Controller Manager or override default ones in form of <flagname>=<value>. ControllerManagerExtraArgs = "controller-manager-extra-args" // ControlPlaneEndpoint flag sets a stable IP address or DNS name for the control plane. ControlPlaneEndpoint = "control-plane-endpoint" // DryRun flag instructs kubeadm to don't apply any changes; just output what would be done. DryRun = "dry-run" // FeatureGatesString flag sets key=value pairs that describe feature gates for various features. FeatureGatesString = "feature-gates" // IgnorePreflightErrors sets the path a list of checks whose errors will be shown as warnings. Example: 'IsPrivilegedUser,Swap'. Value 'all' ignores errors from all checks. IgnorePreflightErrors = "ignore-preflight-errors" // ImageRepository sets the container registry to pull control plane images from. ImageRepository = "image-repository" // KubeconfigDir flag sets the path where to save the kubeconfig file. KubeconfigDir = "kubeconfig-dir" // KubeconfigPath flag sets the kubeconfig file to use when talking to the cluster. If the flag is not set, a set of standard locations are searched for an existing KubeConfig file. KubeconfigPath = "kubeconfig" // KubernetesVersion flag sets the Kubernetes version for the control plane. KubernetesVersion = "kubernetes-version" // NetworkingDNSDomain flag sets the domain for services, e.g. "myorg.internal". NetworkingDNSDomain = "service-dns-domain" // NetworkingServiceSubnet flag sets the range of IP address for service VIPs. NetworkingServiceSubnet = "service-cidr" // NetworkingPodSubnet flag sets the range of IP addresses for the pod network. If set, the control plane will automatically allocate CIDRs for every node. NetworkingPodSubnet = "pod-network-cidr" // NodeCRISocket flag sets the CRI socket to connect to. NodeCRISocket = "cri-socket" // NodeName flag sets the node name. NodeName = "node-name" // SchedulerExtraArgs flag sets extra flags to pass to the Scheduler or override default ones in form of <flagname>=<value>". SchedulerExtraArgs = "scheduler-extra-args" // SkipTokenPrint flag instructs kubeadm to skip printing of the default bootstrap token generated by 'kubeadm init'. SkipTokenPrint = "skip-token-print" // TokenStr flags sets both the discovery-token and the tls-bootstrap-token when those values are not provided TokenStr = "token" // TokenTTL flag sets the time to live for token TokenTTL = "token-ttl" // TokenUsages flag sets the usages of the token TokenUsages = "usages" // TokenGroups flag sets the authentication groups of the token TokenGroups = "groups" // TokenDescription flag sets the description of the token TokenDescription = "description" // TLSBootstrapToken flag sets the token used to temporarily authenticate with the Kubernetes Control Plane to submit a certificate signing request (CSR) for a locally created key pair TLSBootstrapToken = "tls-bootstrap-token" // TokenDiscovery flag sets the token used to validate cluster information fetched from the API server (for token-based discovery) TokenDiscovery = "discovery-token" // TokenDiscoveryCAHash flag instructs kubeadm to validate that the root CA public key matches this hash (for token-based discovery) TokenDiscoveryCAHash = "discovery-token-ca-cert-hash" // TokenDiscoverySkipCAHash flag instructs kubeadm to skip CA hash verification (for token-based discovery) TokenDiscoverySkipCAHash = "discovery-token-unsafe-skip-ca-verification" // FileDiscovery flag sets the file or URL from which to load cluster information (for file-based discovery) FileDiscovery = "discovery-file" // ControlPlane flag instructs kubeadm to create a new control plane instance on this node ControlPlane = "control-plane" // UploadCerts flag instructs kubeadm to upload certificates UploadCerts = "upload-certs" // CertificateKey flag sets the key used to encrypt and decrypt certificate secrets CertificateKey = "certificate-key" // SkipCertificateKeyPrint flag instructs kubeadm to skip printing certificate key used to encrypt certs by 'kubeadm init'. SkipCertificateKeyPrint = "skip-certificate-key-print" // ForceReset flag instructs kubeadm to reset the node without prompting for confirmation ForceReset = "force" // CertificateRenewal flag instructs kubeadm to execute certificate renewal during upgrades CertificateRenewal = "certificate-renewal" // EtcdUpgrade flag instructs kubeadm to execute etcd upgrade during upgrades EtcdUpgrade = "etcd-upgrade" // Patches flag sets the folder where kubeadm component patches are stored Patches = "patches" // PrintManifest flag instructs kubeadm to print the addon manifests to STDOUT instead of installing them. PrintManifest = "print-manifest" // CleanupTmpDir flag indicates whether reset will cleanup the tmp dir CleanupTmpDir = "cleanup-tmp-dir" // AllowExperimentalAPI flag can be used to allow experimental / work in progress APIs AllowExperimentalAPI = "allow-experimental-api" // AllowRCUpgrades enable this flag will allow upgrading to a release candidate version of Kubernetes. AllowRCUpgrades = "allow-release-candidate-upgrades" // AllowExperimentalUpgrades enable this flag will allow upgrading to an alpha/beta/release candidate version of Kubernetes. AllowExperimentalUpgrades = "allow-experimental-upgrades" // PrintConfig specifies whether the cluster configuration that will be used in the upgrade should be printed or not. PrintConfig = "print-config" )
func AddCertificateDirFlag(fs *pflag.FlagSet, certsDir *string)
AddCertificateDirFlag adds the --certs-dir flag to the given flagset
func AddConfigFlag(fs *pflag.FlagSet, cfgPath *string)
AddConfigFlag adds the --config flag to the given flagset
func AddControlPlanExtraArgsFlags(fs *pflag.FlagSet, apiServerExtraArgs, controllerManagerExtraArgs, schedulerExtraArgs *map[string]string)
AddControlPlanExtraArgsFlags adds the ExtraArgs flags for control plane components
func AddFeatureGatesStringFlag(fs *pflag.FlagSet, featureGatesString *string)
AddFeatureGatesStringFlag adds the --feature-gates flag to the given flagset
func AddIgnorePreflightErrorsFlag(fs *pflag.FlagSet, ignorePreflightErrors *[]string)
AddIgnorePreflightErrorsFlag adds the --ignore-preflight-errors flag to the given flagset
func AddImageMetaFlags(fs *pflag.FlagSet, imageRepository *string)
AddImageMetaFlags adds the --image-repository flag to the given flagset
func AddKubeConfigDirFlag(fs *pflag.FlagSet, kubeConfigDir *string)
AddKubeConfigDirFlag adds the --kubeconfig-dir flag to the given flagset
func AddKubeConfigFlag(fs *pflag.FlagSet, kubeConfigFile *string)
AddKubeConfigFlag adds the --kubeconfig flag to the given flagset
func AddKubeadmOtherFlags(flagSet *pflag.FlagSet, rootfsPath *string)
AddKubeadmOtherFlags adds flags that are not bound to a configuration file to the given flagset
func AddKubernetesVersionFlag(fs *pflag.FlagSet, kubernetesVersion *string)
AddKubernetesVersionFlag adds the --kubernetes-version flag to the given flagset
func AddPatchesFlag(fs *pflag.FlagSet, patchesDir *string)
AddPatchesFlag adds the --patches flag to the given flagset
BootstrapTokenOptions is a wrapper struct for adding bootstrap token-related flags to a FlagSet and applying the parsed flags to a InitConfiguration object later at runtime TODO: In the future, we might want to group the flags in a better way than adding them all individually like this
type BootstrapTokenOptions struct { *bootstraptokenv1.BootstrapToken TokenStr string `datapolicy:"token"` }
func NewBootstrapTokenOptions() *BootstrapTokenOptions
NewBootstrapTokenOptions creates a new BootstrapTokenOptions object with the default values
func (bto *BootstrapTokenOptions) AddDescriptionFlag(fs *pflag.FlagSet)
AddDescriptionFlag adds the --description flag to the given flagset
func (bto *BootstrapTokenOptions) AddGroupsFlag(fs *pflag.FlagSet)
AddGroupsFlag adds the --groups flag to the given flagset
func (bto *BootstrapTokenOptions) AddTTLFlag(fs *pflag.FlagSet)
AddTTLFlag adds the --token-ttl flag to the given flagset
func (bto *BootstrapTokenOptions) AddTTLFlagWithName(fs *pflag.FlagSet, flagName string)
AddTTLFlagWithName adds the --token-ttl flag with a custom flag name given flagset
func (bto *BootstrapTokenOptions) AddTokenFlag(fs *pflag.FlagSet)
AddTokenFlag adds the --token flag to the given flagset
func (bto *BootstrapTokenOptions) AddUsagesFlag(fs *pflag.FlagSet)
AddUsagesFlag adds the --usages flag to the given flagset
func (bto *BootstrapTokenOptions) ApplyTo(cfg *kubeadmapiv1.InitConfiguration) error
ApplyTo applies the values set internally in the BootstrapTokenOptions object to a InitConfiguration object at runtime If --token was specified in the CLI (as a string), it's parsed and validated before it's added to the BootstrapToken object.