type LoadOrDefaultConfigurationOptions … // MarshalKubeadmConfigObject marshals an Object registered in the kubeadm scheme. If the object is a InitConfiguration or ClusterConfiguration, some extra logic is run func MarshalKubeadmConfigObject(obj runtime.Object, gv schema.GroupVersion) ([]byte, error) { … } // validateSupportedVersion checks if the supplied GroupVersion is not on the lists of old unsupported or deprecated GVs. // If it is, an error is returned. func validateSupportedVersion(gvk schema.GroupVersionKind, allowDeprecated, allowExperimental bool) error { … } // NormalizeKubernetesVersion resolves version labels, sets alternative // image registry if requested for CI builds, and validates minimal // version that kubeadm SetInitDynamicDefaults supports. func NormalizeKubernetesVersion(cfg *kubeadmapi.ClusterConfiguration) error { … } // LowercaseSANs can be used to force all SANs to be lowercase so it passes IsDNS1123Subdomain func LowercaseSANs(sans []string) { … } // VerifyAPIServerBindAddress can be used to verify if a bind address for the API Server is 0.0.0.0, // in which case this address is not valid and should not be used. func VerifyAPIServerBindAddress(address string) error { … } // ChooseAPIServerBindAddress is a wrapper for netutil.ResolveBindAddress that also handles // the case where no default routes were found and an IP for the API server could not be obtained. func ChooseAPIServerBindAddress(bindAddress net.IP) (net.IP, error) { … } // validateKnownGVKs takes a list of GVKs and verifies if they are known in kubeadm or component config schemes func validateKnownGVKs(gvks []schema.GroupVersionKind) error { … } // MigrateOldConfig migrates an old configuration from a byte slice into a new one (returned again as a byte slice). // Only kubeadm kinds are migrated. func MigrateOldConfig(oldConfig []byte, allowExperimental bool, mutators migrateMutators) ([]byte, error) { … } // ValidateConfig takes a byte slice containing a kubeadm configuration and performs conversion // to internal types and validation. func ValidateConfig(config []byte, allowExperimental bool) error { … } // isKubeadmPrereleaseVersion returns true if the kubeadm version is a pre-release version and // the minimum control plane version is N+2 MINOR version of the given k8sVersion. func isKubeadmPrereleaseVersion(versionInfo *apimachineryversion.Info, k8sVersion, mcpVersion *version.Version) bool { … } // prepareStaticVariables takes a given config and stores values from it in variables // that can be used from multiple packages. func prepareStaticVariables(config any) { … } type migrateMutator … type migrateMutators … // mutate can be called on a list of registered mutators to find a suitable one to perform // a configuration object mutation. func (mutators migrateMutators) mutate(in []any) error { … } // addEmpty adds an empty migrate mutator for a given input. func (mutators *migrateMutators) addEmpty(in []any) { … } // defaultMutators returns the default list of mutators for known configuration objects. // TODO: make this function return defaultEmptyMutators() when v1beta3 is removed. func defaultMigrateMutators() migrateMutators { … } // defaultEmptyMigrateMutators returns a list of empty mutators for known types. func defaultEmptyMigrateMutators() migrateMutators { … } // isKubeadmConfigPresent checks if a kubeadm config type is found in the provided document map func isKubeadmConfigPresent(docmap kubeadmapi.DocumentMap) bool { … }