util

package
v1.5.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 19, 2023 License: Apache-2.0 Imports: 38 Imported by: 1

Documentation

Index

Constants

View Source
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}$`
)
View Source
const (
	NCPSNATKey          = "ncp/snat_ip"
	NCPVersionKey       = "version"
	NCPNamespace        = "vmware-system-nsx"
	NCPVersionConfigMap = "nsx-ncp-version-config"
	// 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"
	// 3.1.0 is where NCP stopped to support "whitelist_source_ranges" specification in VNET.
	NCPVersionSupportFWEnded = "3.1.0"

	EmptyAnnotationErrorMsg = "annotation not found"
	EmptyNCPSNATKeyMsg      = NCPSNATKey + " key not found"
)

Variables

View Source
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

func ConvertProviderIDToUUID(providerID *string) string

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

func ConvertUUIDToProviderID(uuid string) string

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 CreateCluster(clusterName string) *clusterv1.Cluster

func CreateClusterContext added in v1.1.0

func CreateClusterContext(cluster *clusterv1.Cluster, vsphereCluster *infrav1.VSphereCluster) *vmware.ClusterContext

func CreateMachine added in v1.1.0

func CreateMachine(machineName, clusterName, controlPlaneLabel, k8sVersion string) *clusterv1.Machine

func CreateMachineContext added in v1.1.0

func CreateMachineContext(clusterContext *vmware.ClusterContext, machine *clusterv1.Machine,
	vsphereMachine *infrav1.VSphereMachine) *vmware.SupervisorMachineContext

func CreateVSphereCluster added in v1.1.0

func CreateVSphereCluster(clusterName string) *infrav1.VSphereCluster

func CreateVSphereMachine added in v1.1.0

func CreateVSphereMachine(machineName, clusterName, controlPlaneLabel, className, imageName, storageClass string) *infrav1.VSphereMachine

func FetchControlPlaneOwnerObject added in v1.3.2

func FetchControlPlaneOwnerObject(input FetchObjectInput) (ctrlclient.Object, error)

func FetchMachineDeploymentOwnerObject added in v1.3.2

func FetchMachineDeploymentOwnerObject(input FetchObjectInput) (ctrlclient.Object, error)

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

func GetNCPVersion(ctx context.Context, controllerClient client.Client) (string, error)

GetNCPVersion finds out the running ncp's version from its configmap.

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 GetOwnerVSphereMachine added in v0.7.9

func GetOwnerVSphereMachine(ctx context.Context, c client.Client, obj metav1.ObjectMeta) (*infrav1.VSphereMachine, error)

func GetVSphereClusterFromVMwareMachine added in v1.3.2

func GetVSphereClusterFromVMwareMachine(ctx context.Context, c client.Client, machine *vmwarev1b1.VSphereMachine) (*vmwarev1b1.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) (*vmwarev1b1.VSphereMachine, error)

GetVSphereMachine gets a vmware.infrastructure.cluster.x-k8s.io.VSphereMachine resource for the given CAPI Machine.

func GetVSphereMachinesInCluster

func GetVSphereMachinesInCluster(
	ctx context.Context,
	controllerClient client.Client,
	namespace, clusterName string) ([]*infrav1.VSphereMachine, error)

GetVSphereMachinesInCluster gets a cluster's VSphereMachine resources.

func IsControlPlaneMachine

func IsControlPlaneMachine(machine metav1.Object) bool

IsControlPlaneMachine returns true if the provided resource is a member of the control plane.

func IsNotFoundError added in v1.3.2

func IsNotFoundError(err error) bool

func IsSupervisorType added in v1.1.0

func IsSupervisorType(input interface{}) (bool, error)

func LessThan added in v1.5.0

func LessThan(version1, version2 string) (bool, error)

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

func MachinesAsString(machines []*clusterv1.Machine) string

MachinesAsString constructs a string (with correct punctuations) to be used in logging and error messages.

func NCPSupportFW added in v1.1.0

func NCPSupportFW(ctx context.Context, controllerClient client.Client) (bool, error)

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 SanitizeHostInfoLabel added in v1.3.5

func SanitizeHostInfoLabel(info string) string

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.

Types

type FetchObjectInput added in v1.3.2

type FetchObjectInput struct {
	context.Context
	ctrlclient.Client
	Object ctrlclient.Object
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL