Documentation ¶
Overview ¶
Package util contains utils.
Index ¶
- Constants
- Variables
- func ConvertProviderIDToUUID(providerID *string) string
- func ConvertUUIDToProviderID(uuid string) string
- func CreateCluster(clusterName string) *clusterv1.Cluster
- func CreateClusterContext(cluster *clusterv1.Cluster, vsphereCluster *vmwarev1.VSphereCluster) (*vmware.ClusterContext, *capvcontext.ControllerManagerContext)
- func CreateMachine(machineName, clusterName, k8sVersion string, controlPlaneLabel bool) *clusterv1.Machine
- func CreateMachineContext(clusterContext *vmware.ClusterContext, machine *clusterv1.Machine, ...) *vmware.SupervisorMachineContext
- func CreateVSphereCluster(clusterName string) *vmwarev1.VSphereCluster
- func CreateVSphereMachine(machineName, clusterName, className, imageName, storageClass string, ...) *vmwarev1.VSphereMachine
- func FetchControlPlaneOwnerObject(ctx context.Context, input FetchObjectInput) (ctrlclient.Object, error)
- func FetchMachineDeploymentOwnerObject(ctx context.Context, input FetchObjectInput) (ctrlclient.Object, error)
- func GetMachineMetadata(hostname string, vsphereVM infrav1.VSphereVM, ...) ([]byte, error)
- func GetMachinePreferredIPAddress(machine *infrav1.VSphereMachine) (string, error)
- func GetNCPVersion(ctx context.Context, controllerClient client.Client) (string, error)
- func GetNamespaceNetSnatIP(ctx context.Context, controllerClient client.Client, namespace string) (string, error)
- func GetOwnerVMWareMachine(ctx context.Context, c client.Client, obj metav1.ObjectMeta) (*vmwarev1.VSphereMachine, error)
- func GetOwnerVSphereMachine(ctx context.Context, c client.Client, obj metav1.ObjectMeta) (*infrav1.VSphereMachine, error)
- func GetVSphereClusterFromVMwareMachine(ctx context.Context, c client.Client, machine *vmwarev1.VSphereMachine) (*vmwarev1.VSphereCluster, error)
- func GetVSphereClusterFromVSphereMachine(ctx context.Context, c client.Client, machine *infrav1.VSphereMachine) (*infrav1.VSphereCluster, error)
- func GetVSphereMachine(ctx context.Context, controllerClient client.Client, ...) (*vmwarev1.VSphereMachine, error)
- func IPAddressClaimName(vmName string, deviceIndex, poolIndex int) string
- func IsControlPlaneMachine(machine metav1.Object) bool
- func LessThan(version1, version2 string) (bool, error)
- func MachinesAsString(machines []*clusterv1.Machine) string
- func NCPSupportFW(ctx context.Context, controllerClient client.Client) (bool, error)
- func NewKubeClient(ctx context.Context, controllerClient client.Client, ...) (kubernetes.Interface, error)
- func ParseHardwareVersion(version string) (int, error)
- func SanitizeHostInfoLabel(info string) string
- func SetControllerReferenceWithOverride(owner, controlled metav1.Object, scheme *runtime.Scheme) error
- type FetchObjectInput
Constants ¶
const ( // ProviderIDPrefix is the string data prefixed to a BIOS UUID in order // to build a provider ID. ProviderIDPrefix = "vsphere://" // ProviderIDPattern is a regex pattern and is used by ConvertProviderIDToUUID // to convert a providerID into a UUID string. ProviderIDPattern = `(?i)^` + ProviderIDPrefix + `([a-f\d]{8}-[a-f\d]{4}-[a-f\d]{4}-[a-f\d]{4}-[a-f\d]{12})$` // UUIDPattern is a regex pattern and is used by ConvertUUIDToProviderID // to convert a UUID into a providerID string. UUIDPattern = `(?i)^[a-f\d]{8}-[a-f\d]{4}-[a-f\d]{4}-[a-f\d]{4}-[a-f\d]{12}$` )
const ( // NCPSNATKey is the key used for the NCPSNAT annotation. NCPSNATKey = "ncp/snat_ip" // NCPVersionKey is the key used for version information in the NCP configmap. NCPVersionKey = "version" // NCPNamespace is the namespace of the NCP configmap. NCPNamespace = "vmware-system-nsx" // NCPVersionConfigMap is a name of the NCP config map. NCPVersionConfigMap = "nsx-ncp-version-config" // NCPVersionSupportFW 3.0.1 is where NCP starts to support "whitelist_source_ranges" specification in VNET and enforce FW rules on GC T1. NCPVersionSupportFW = "3.0.1" // NCPVersionSupportFWEnded 3.1.0 is where NCP stopped to support "whitelist_source_ranges" specification in VNET. NCPVersionSupportFWEnded = "3.1.0" // EmptyAnnotationErrorMsg is an error message returned when no annotations are found. EmptyAnnotationErrorMsg = "annotation not found" // EmptyNCPSNATKeyMsg is an error message returned when the annotation can not be found. EmptyNCPSNATKeyMsg = NCPSNATKey + " key not found" )
Variables ¶
var ( // NCPVersionSupportFWSemver is the SemVer representation of the minimum NCPVersion for enforcing FW rules. NCPVersionSupportFWSemver = semver.MustParse(NCPVersionSupportFW) // NCPVersionSupportFWEndedSemver is the SemVer representation of the maximum NCPVersion for enforcing FW rules. NCPVersionSupportFWEndedSemver = semver.MustParse(NCPVersionSupportFWEnded) )
var ErrNoMachineIPAddr = errors.New("no IP addresses found for machine")
ErrNoMachineIPAddr indicates that no valid IP addresses were found in a machine context.
Functions ¶
func ConvertProviderIDToUUID ¶
ConvertProviderIDToUUID transforms a provider ID into a UUID string. If providerID is nil, empty, or invalid, then an empty string is returned. A valid providerID should adhere to the format specified by ProviderIDPattern.
func ConvertUUIDToProviderID ¶
ConvertUUIDToProviderID transforms a UUID string into a provider ID. If the supplied UUID is empty or invalid then an empty string is returned. A valid UUID should adhere to the format specified by UUIDPattern.
func CreateCluster ¶ added in v1.1.0
func CreateClusterContext ¶ added in v1.1.0
func CreateClusterContext(cluster *clusterv1.Cluster, vsphereCluster *vmwarev1.VSphereCluster) (*vmware.ClusterContext, *capvcontext.ControllerManagerContext)
func CreateMachine ¶ added in v1.1.0
func CreateMachineContext ¶ added in v1.1.0
func CreateMachineContext(clusterContext *vmware.ClusterContext, machine *clusterv1.Machine, vsphereMachine *vmwarev1.VSphereMachine) *vmware.SupervisorMachineContext
func CreateVSphereCluster ¶ added in v1.1.0
func CreateVSphereCluster(clusterName string) *vmwarev1.VSphereCluster
func CreateVSphereMachine ¶ added in v1.1.0
func CreateVSphereMachine(machineName, clusterName, className, imageName, storageClass string, controlPlaneLabel bool) *vmwarev1.VSphereMachine
func FetchControlPlaneOwnerObject ¶ added in v1.3.2
func FetchControlPlaneOwnerObject(ctx context.Context, input FetchObjectInput) (ctrlclient.Object, error)
FetchControlPlaneOwnerObject returns the ControlPlane owner for a Machine.
func FetchMachineDeploymentOwnerObject ¶ added in v1.3.2
func FetchMachineDeploymentOwnerObject(ctx context.Context, input FetchObjectInput) (ctrlclient.Object, error)
FetchMachineDeploymentOwnerObject returns the MachineDeployment owner for a Machine.
func GetMachineMetadata ¶
func GetMachineMetadata(hostname string, vsphereVM infrav1.VSphereVM, ipamState map[string]infrav1.NetworkDeviceSpec, networkStatuses ...infrav1.NetworkStatus) ([]byte, error)
GetMachineMetadata the cloud-init metadata as a base-64 encoded string for a given VSphereMachine. IPAM state includes IP and Gateways that should be added to each device.
func GetMachinePreferredIPAddress ¶
func GetMachinePreferredIPAddress(machine *infrav1.VSphereMachine) (string, error)
GetMachinePreferredIPAddress returns the preferred IP address for a VSphereMachine resource.
func GetNCPVersion ¶ added in v1.1.0
GetNCPVersion finds out the running ncp's version from its configmap. If the version contains more than 3 segments, it will get trimmed down to 3.
func GetNamespaceNetSnatIP ¶ added in v1.1.0
func GetNamespaceNetSnatIP(ctx context.Context, controllerClient client.Client, namespace string) (string, error)
GetNamespaceNetSnatIP finds out the namespace's corresponding network's SNAT IP.
func GetOwnerVMWareMachine ¶ added in v1.10.0
func GetOwnerVMWareMachine(ctx context.Context, c client.Client, obj metav1.ObjectMeta) (*vmwarev1.VSphereMachine, error)
GetOwnerVMWareMachine returns the vmwarev1.VSphereMachine owner for the passed object.
func GetOwnerVSphereMachine ¶ added in v0.7.9
func GetOwnerVSphereMachine(ctx context.Context, c client.Client, obj metav1.ObjectMeta) (*infrav1.VSphereMachine, error)
GetOwnerVSphereMachine returns the VSphereMachine owner for the passed object.
func GetVSphereClusterFromVMwareMachine ¶ added in v1.3.2
func GetVSphereClusterFromVMwareMachine(ctx context.Context, c client.Client, machine *vmwarev1.VSphereMachine) (*vmwarev1.VSphereCluster, error)
GetVSphereClusterFromVMwareMachine gets the vmware.infrastructure.cluster.x-k8s.io.VSphereCluster resource for the given VSphereMachine. TODO (srm09): Rename this to a more appropriate name.
func GetVSphereClusterFromVSphereMachine ¶ added in v1.1.0
func GetVSphereClusterFromVSphereMachine(ctx context.Context, c client.Client, machine *infrav1.VSphereMachine) (*infrav1.VSphereCluster, error)
GetVSphereClusterFromVSphereMachine gets the infrastructure.cluster.x-k8s.io.VSphereCluster resource for the given VSphereMachine.
func GetVSphereMachine ¶
func GetVSphereMachine( ctx context.Context, controllerClient client.Client, namespace, machineName string) (*vmwarev1.VSphereMachine, error)
GetVSphereMachine gets a vmware.infrastructure.cluster.x-k8s.io.VSphereMachine resource for the given CAPI Machine.
func IPAddressClaimName ¶ added in v1.7.0
IPAddressClaimName returns a name given a VsphereVM name, deviceIndex, and poolIndex.
func IsControlPlaneMachine ¶
IsControlPlaneMachine returns true if the provided resource is a member of the control plane.
func LessThan ¶ added in v1.5.0
LessThan compares the integer values of the supplied VMX versions and returns whether the first version is less than the second. It returns an error if an invalid vmx version is passed.
func MachinesAsString ¶ added in v1.0.2
MachinesAsString constructs a string (with correct punctuations) to be used in logging and error messages.
func NCPSupportFW ¶ added in v1.1.0
NCPSupportFW checks the version of running NCP and return true if it supports FW rule enforcement on GC T1 Router.
func NewKubeClient ¶
func NewKubeClient( ctx context.Context, controllerClient client.Client, cluster *clusterv1.Cluster) (kubernetes.Interface, error)
NewKubeClient returns a new client for the target cluster using the KubeConfig secret stored in the management cluster.
func ParseHardwareVersion ¶ added in v1.8.6
ParseHardwareVersion returns the virtual machine hardware version from the input. It expects the input formatted as vmx-17, where the trailing number is virtual machine hardware version.
func SanitizeHostInfoLabel ¶ added in v1.3.5
SanitizeHostInfoLabel ensures that the ESXi host information passed as a parameter confirms to the label value constraints documented at https://k8s.io/docs/concepts/overview/working-with-objects/labels/#syntax-and-character-set
The expected inputs for the object are IP addresses or FQDNs of the ESXi hosts.
func SetControllerReferenceWithOverride ¶ added in v1.7.0
func SetControllerReferenceWithOverride(owner, controlled metav1.Object, scheme *runtime.Scheme) error
SetControllerReferenceWithOverride sets owner as a Controller OwnerReference on controlled. This is used for garbage collection of the controlled object and for reconciling the owner object on changes to controlled (with a Watch + EnqueueRequestForOwner). Since only one OwnerReference can be a controller, it returns an error if there is another OwnerReference with Controller flag set unless it was a legacy controller owner.
Types ¶
type FetchObjectInput ¶ added in v1.3.2
type FetchObjectInput struct { ctrlclient.Client Object ctrlclient.Object }
FetchObjectInput contains data to fetch objects.