common

package
v0.47.0-aks-9 Latest Latest
Warning

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

Go to latest
Published: Mar 7, 2020 License: MIT Imports: 9 Imported by: 144

Documentation

Overview

Package common stores helpers and utility functions.

Index

Constants

View Source
const (
	// Mesos is the string constant for MESOS orchestrator type
	Mesos string = "Mesos"
	// DCOS is the string constant for DCOS orchestrator type and defaults to DCOS188
	DCOS string = "DCOS"
	// Swarm is the string constant for the Swarm orchestrator type
	Swarm string = "Swarm"
	// Kubernetes is the string constant for the Kubernetes orchestrator type
	Kubernetes string = "Kubernetes"
	// SwarmMode is the string constant for the Swarm Mode orchestrator type
	SwarmMode string = "SwarmMode"
)

the orchestrators supported

View Source
const (
	// MinAgentCount are the minimum number of agents per agent pool
	MinAgentCount = 1
	// MaxAgentCount are the maximum number of agents per agent pool
	MaxAgentCount = 100
	// MinPort specifies the minimum tcp port to open
	MinPort = 1
	// MaxPort specifies the maximum tcp port to open
	MaxPort = 65535
	// MaxDisks specifies the maximum attached disks to add to the cluster
	MaxDisks = 4
	// MinDiskSizeGB specifies the minimum attached disk size
	MinDiskSizeGB = 1
	// MaxDiskSizeGB specifies the maximum attached disk size
	MaxDiskSizeGB = 1023
	// MinIPAddressCount specifies the minimum number of IP addresses per network interface
	MinIPAddressCount = 1
	// MaxIPAddressCount specifies the maximum number of IP addresses per network interface
	MaxIPAddressCount = 256
	// address relative to the first consecutive Kubernetes static IP
	DefaultInternalLbStaticIPOffset = 10
)

validation values

View Source
const (
	// AvailabilitySet means that the vms are in an availability set
	AvailabilitySet = "AvailabilitySet"
	// VirtualMachineScaleSets means that the vms are in a virtual machine scaleset
	VirtualMachineScaleSets = "VirtualMachineScaleSets"
)

Availability profiles

View Source
const (
	// StorageAccount means that the nodes use raw storage accounts for their os and attached volumes
	StorageAccount = "StorageAccount"
	// ManagedDisks means that the nodes use managed disks for their os and attached volumes
	ManagedDisks = "ManagedDisks"
	// Ephemeral means that the node's os disk is ephemeral. This is not compatible with attached volumes.
	Ephemeral = "Ephemeral"
)

storage profiles

View Source
const (
	// KubernetesDefaultRelease is the default Kubernetes release
	KubernetesDefaultRelease string = "1.13"
	// KubernetesDefaultReleaseWindows is the default Kubernetes release
	KubernetesDefaultReleaseWindows string = "1.14"
)
View Source
const (
	// DCOSVersion1Dot11Dot2 is the major.minor.patch string for 1.11.0 versions of DCOS
	DCOSVersion1Dot11Dot2 string = "1.11.2"
	// DCOSVersion1Dot11Dot0 is the major.minor.patch string for 1.11.0 versions of DCOS
	DCOSVersion1Dot11Dot0 string = "1.11.0"
	// DCOSVersion1Dot10Dot0 is the major.minor.patch string for 1.10.0 versions of DCOS
	DCOSVersion1Dot10Dot0 string = "1.10.0"
	// DCOSVersion1Dot9Dot0 is the major.minor.patch string for 1.9.0 versions of DCOS
	DCOSVersion1Dot9Dot0 string = "1.9.0"
	// DCOSVersion1Dot9Dot8 is the major.minor.patch string for 1.9.8 versions of DCOS
	DCOSVersion1Dot9Dot8 string = "1.9.8"
	// DCOSVersion1Dot8Dot8 is the major.minor.patch string for 1.8.8 versions of DCOS
	DCOSVersion1Dot8Dot8 string = "1.8.8"
	// DCOSDefaultVersion is the default major.minor.patch version for DCOS
	DCOSDefaultVersion string = DCOSVersion1Dot11Dot0
)
View Source
const (
	// SwarmVersion is the Swarm orchestrator version
	SwarmVersion = "swarm:1.1.0"
	// DockerCEVersion is the DockerCE orchestrator version
	DockerCEVersion = "17.03.*"
)
View Source
const (
	// HeapsterAddonName is the name of the heapster addon
	HeapsterAddonName = "heapster"
	// TillerAddonName is the name of the tiller addon deployment
	TillerAddonName = "tiller"
	// ACIConnectorAddonName is the name of the aci-connector addon deployment
	ACIConnectorAddonName = "aci-connector"
	// ClusterAutoscalerAddonName is the name of the cluster autoscaler addon deployment
	ClusterAutoscalerAddonName = "cluster-autoscaler"
	// BlobfuseFlexVolumeAddonName is the name of the blobfuse flexvolume addon
	BlobfuseFlexVolumeAddonName = "blobfuse-flexvolume"
	// SMBFlexVolumeAddonName is the name of the smb flexvolume addon
	SMBFlexVolumeAddonName = "smb-flexvolume"
	// KeyVaultFlexVolumeAddonName is the name of the key vault flexvolume addon deployment
	KeyVaultFlexVolumeAddonName = "keyvault-flexvolume"
	// DashboardAddonName is the name of the kubernetes-dashboard addon deployment
	DashboardAddonName = "kubernetes-dashboard"
	// ReschedulerAddonName is the name of the rescheduler addon deployment
	ReschedulerAddonName = "rescheduler"
	// MetricsServerAddonName is the name of the kubernetes metrics server addon deployment
	MetricsServerAddonName = "metrics-server"
	// NVIDIADevicePluginAddonName is the name of the NVIDIA device plugin addon deployment
	NVIDIADevicePluginAddonName = "nvidia-device-plugin"
	// ContainerMonitoringAddonName is the name of the kubernetes Container Monitoring addon deployment
	ContainerMonitoringAddonName = "container-monitoring"
	// IPMASQAgentAddonName is the name of the ip masq agent addon
	IPMASQAgentAddonName = "ip-masq-agent"
	// AzureCNINetworkMonitorAddonName is the name of the Azure CNI networkmonitor addon
	AzureCNINetworkMonitorAddonName = "azure-cni-networkmonitor"
	// AzureNetworkPolicyAddonName is the name of the Azure network policy manager addon
	AzureNetworkPolicyAddonName = "azure-npm-daemonset"
	// AzureVnetTelemetryContainerName is the name of the deprecated Azure vnet telemetry container in the azure-npm-daemonset addon
	AzureVnetTelemetryContainerName = "azure-vnet-telemetry-daemonset"
	// NMIContainerName is the name of the nmi container in the aad-pod-identity addon
	NMIContainerName = "nmi"
	// MICContainerName is the name of the mic container in the aad-pod-identity addon
	MICContainerName = "mic"
	// CiliumAgentContainerName is the name of the cilium-agent container in the cilium addon
	CiliumAgentContainerName = "cilium-agent"
	// CiliumCleanStateContainerName is the name of the clean-cilium-state container in the cilium addon
	CiliumCleanStateContainerName = "clean-cilium-state"
	// CiliumOperatorContainerName is the name of the cilium-operator container in the cilium addon
	CiliumOperatorContainerName = "cilium-operator"
	// CiliumEtcdOperatorContainerName is the name of the cilium-etcd-operator container in the cilium addon
	CiliumEtcdOperatorContainerName = "cilium-etcd-operator"
	// AntreaControllerContainerName is the name of the antrea-controller container in the antrea addon
	AntreaControllerContainerName = "antrea-controller"
	// AntreaAgentContainerName is the name of the antrea-agent container in the antrea addon
	AntreaAgentContainerName = "antrea-agent"
	// AntreaOVSContainerName is the name of the antrea-ovs container in the antrea addon
	AntreaOVSContainerName = "antrea-ovs"
	// AntreaInstallCNIContainerName is the name of the install-cni container in the antrea addon
	AntreaInstallCNIContainerName = "install-cni"
	// GatekeeperContainerName is the name of the gatekeeper container in the azure-policy addon
	GatekeeperContainerName = "gatekeeper"
	// CloudNodeManagerAddonName is the name of the cloud node manager addon
	CloudNodeManagerAddonName = "cloud-node-manager"
	// DNSAutoscalerAddonName is the name of the dns-autoscaler addon
	DNSAutoscalerAddonName = "dns-autoscaler"
	// CalicoAddonName is the name of calico daemonset addon
	CalicoAddonName = "calico-daemonset"
	// AADPodIdentityAddonName is the name of the aad-pod-identity addon deployment
	AADPodIdentityAddonName = "aad-pod-identity"
	// AzurePolicyAddonName is the name of the Azure Policy addon
	AzurePolicyAddonName = "azure-policy"
	// AppGwIngressAddonName appgw addon
	AppGwIngressAddonName = "appgw-ingress"
	// AzureDiskCSIDriverAddonName is the name of Azure Disk CSI Driver addon
	AzureDiskCSIDriverAddonName = "azuredisk-csi-driver"
	// CSIProvisionerContainerName is the name of the csi-provisioner container in the azuredisk-csi-driver and azurefile-csi-driver addons
	CSIProvisionerContainerName = "csi-provisioner"
	// CSIAttacherContainerName is the name of the csi-attacher container in the azuredisk-csi-driver and azurefile-csi-driver addons
	CSIAttacherContainerName = "csi-attacher"
	// CSIClusterDriverRegistrarContainerName is the name of the csi-cluster-driver-registrar container in the azuredisk-csi-driver and azurefile-csi-driver addons
	CSIClusterDriverRegistrarContainerName = "csi-cluster-driver-registrar"
	// CSILivenessProbeContainerName is the name of the livenessprobe container in the azuredisk-csi-driver and azurefile-csi-driver addons
	CSILivenessProbeContainerName = "livenessprobe"
	// CSISnapshotterContainerName is the name of the csi-snapshotter container in the azuredisk-csi-driver addon
	CSISnapshotterContainerName = "csi-snapshotter"
	// CSIResizerContainerName is the name of the csi-resizer container in the azuredisk-csi-driver addon
	CSIResizerContainerName = "csi-resizer"
	// CSINodeDriverRegistrarContainerName is the name of the csi-node-driver-registrar container in the azuredisk-csi-driver and azurefile-csi-driver addons
	CSINodeDriverRegistrarContainerName = "csi-node-driver-registrar"
	// CSIAzureDiskContainerName is the name of the azuredisk-csi container in the azuredisk-csi-driver and azurefile-csi-driver addons
	CSIAzureDiskContainerName = "azuredisk-csi"
	// AzureFileCSIDriverAddonName is the name of Azure File CSI Driver addon
	AzureFileCSIDriverAddonName = "azurefile-csi-driver"
	// CSIAzureFileContainerName is the name of the azurefile-csi container in the azurefile-csi-driver addon
	CSIAzureFileContainerName = "azurefile-csi"
	// AzureStorageClassesAddonName is the name of the azure storage classes addon
	AzureStorageClassesAddonName = "azure-storage-classes"
	// KubeDNSAddonName is the name of the kube-dns-deployment addon
	KubeDNSAddonName = "kube-dns"
	// CoreDNSAddonName is the name of the coredns addon
	CoreDNSAddonName = "coredns"
	// KubeProxyAddonName is the name of the kube-proxy config addon
	KubeProxyAddonName = "kube-proxy"
	// CiliumAddonName is the name of cilium daemonset addon
	CiliumAddonName = "cilium"
	// AntreaAddonName is the name of antrea daemonset addon
	AntreaAddonName = "antrea"
	// FlannelAddonName is the name of flannel plugin daemonset addon
	FlannelAddonName = "flannel"
	// KubeFlannelContainerName is the name of the kube-flannel container in the flannel addon
	KubeFlannelContainerName = "kube-flannel"
	// FlannelInstallCNIContainerName is the name of the install-cni container in the flannel addon
	FlannelInstallCNIContainerName = "install-cni"
	// KubeRBACProxyContainerName is the name of the kube-rbac-proxy container in the scheduled-maintenance addon
	KubeRBACProxyContainerName = "kube-rbac-proxy"
	// ScheduledMaintenanceManagerContainerName is the name of the manager container in the scheduled-maintenance addon
	ScheduledMaintenanceManagerContainerName = "manager"
	// AADAdminGroupAddonName is the name of the default admin group RBAC addon
	AADAdminGroupAddonName = "aad"
	// AzureCloudProviderAddonName is the name of the azure-cloud-provider addon
	AzureCloudProviderAddonName = "azure-cloud-provider"
	// AzureCSIStorageClassesAddonName is the name of Azure CSI storage classes addon
	AzureCSIStorageClassesAddonName = "azure-csi-storage-classes"
	// AuditPolicyAddonName is the name of the audit policy addon
	AuditPolicyAddonName = "audit-policy"
	// ScheduledMaintenanceAddonName is the name of the scheduled maintenance addon deployment
	ScheduledMaintenanceAddonName = "scheduled-maintenance"
	// PodSecurityPolicyAddonName is the name of the PodSecurityPolicy addon
	PodSecurityPolicyAddonName = "pod-security-policy"
	// NodeProblemDetectorAddonName is the name of the node problem detector addon
	NodeProblemDetectorAddonName = "node-problem-detector"
)

Addon name consts

View Source
const MinCloudProviderQPSToBucketFactor float64 = 0.1

MinCloudProviderQPSToBucketFactor defines the minimum ratio between QPS and Bucket size for cloudprovider rate limiting

Variables

AllDCOSSupportedVersions maintain a list of available dcos versions in aks-engine

View Source
var AllKubernetesSupportedVersions = map[string]bool{}/* 160 elements not displayed */

AllKubernetesSupportedVersions is a whitelist map of all supported Kubernetes version strings The bool value indicates if creating new clusters with this version is allowed

View Source
var AllKubernetesWindowsSupportedVersions = getAllKubernetesWindowsSupportedVersionsMap()

AllKubernetesWindowsSupportedVersions maintain a set of available k8s Windows versions in aks-engine

Functions

func CidrFirstIP

func CidrFirstIP(cidr net.IP) net.IP

CidrFirstIP returns the first IP of the provided subnet.

func CidrStringFirstIP

func CidrStringFirstIP(ip string) (net.IP, error)

CidrStringFirstIP returns the first IP of the provided subnet string. Returns an error if the string cannot be parsed.

func GetAllSupportedDCOSVersions

func GetAllSupportedDCOSVersions() []string

GetAllSupportedDCOSVersions returns a slice of all supported DCOS versions.

func GetAllSupportedDockerCEVersions

func GetAllSupportedDockerCEVersions() []string

GetAllSupportedDockerCEVersions returns a slice of all supported Docker CE versions.

func GetAllSupportedKubernetesVersions

func GetAllSupportedKubernetesVersions(isUpdate, hasWindows bool) []string

GetAllSupportedKubernetesVersions returns a slice of all supported Kubernetes versions

func GetAllSupportedSwarmVersions

func GetAllSupportedSwarmVersions() []string

GetAllSupportedSwarmVersions returns a slice of all supported Swarm versions.

func GetDCSeriesVMCasesForTesting added in v0.42.0

func GetDCSeriesVMCasesForTesting() []struct {
	VMSKU    string
	Expected bool
}

GetDCSeriesVMCasesForTesting returns a struct w/ VM SKUs and whether or not we expect them to be SGX-enabled

func GetDefaultKubernetesVersion

func GetDefaultKubernetesVersion(hasWindows bool) string

GetDefaultKubernetesVersion returns the default Kubernetes version, that is the latest patch of the default release

func GetLatestPatchVersion

func GetLatestPatchVersion(majorMinor string, versionsList []string) (version string)

GetLatestPatchVersion gets the most recent patch version from a list of semver versions given a major.minor string

func GetMasterKubernetesLabels added in v0.37.0

func GetMasterKubernetesLabels(rg string, deprecated bool) string

GetMasterKubernetesLabels returns a k8s API-compliant labels string. The `kubernetes.io/role` and `node-role.kubernetes.io` labels are disallowed by the kubelet `--node-labels` argument in Kubernetes 1.16 and later.

func GetMaxVersion

func GetMaxVersion(versions []string, preRelease bool) string

GetMaxVersion gets the highest semver version preRelease=true means accept a pre-release version as a max value

func GetMinVersion

func GetMinVersion(versions []string, preRelease bool) string

GetMinVersion gets the lowest semver version preRelease=true means accept a pre-release version as a min value

func GetNSeriesVMCasesForTesting

func GetNSeriesVMCasesForTesting() []struct {
	VMSKU    string
	Expected bool
}

GetNSeriesVMCasesForTesting returns a struct w/ VM SKUs and whether or not we expect them to be nvidia-enabled

func GetOrderedEscapedKeyValsString added in v0.37.0

func GetOrderedEscapedKeyValsString(config map[string]string) string

GetOrderedEscapedKeyValsString returns an ordered string of escaped, quoted key=val

func GetStorageAccountType added in v0.37.0

func GetStorageAccountType(sizeName string) (string, error)

GetStorageAccountType returns the support managed disk storage tier for a give VM size

func GetSupportedKubernetesVersion

func GetSupportedKubernetesVersion(version string, hasWindows bool) string

GetSupportedKubernetesVersion verifies that a passed-in version string is supported, or returns a default version string if not

func GetSupportedVersions

func GetSupportedVersions(orchType string, isUpdate, hasWindows bool) (versions []string, defaultVersion string)

GetSupportedVersions get supported version list for a certain orchestrator

func GetVNETSubnetIDComponents

func GetVNETSubnetIDComponents(vnetSubnetID string) (string, string, string, string, error)

GetVNETSubnetIDComponents extract subscription, resourcegroup, vnetname, subnetname from the vnetSubnetID

func GetValidPatchVersion

func GetValidPatchVersion(orchType, orchVer string, isUpdate, hasWindows bool) string

GetValidPatchVersion gets the current valid patch version for the minor version of the passed in version

func GetVersionsBetween

func GetVersionsBetween(versions []string, versionMin, versionMax string, inclusive, preReleases bool) []string

GetVersionsBetween returns a list of versions between a min and max inclusive=true means that we test for equality on both bounds preReleases=true means that we include pre-release versions in the list

func GetVersionsGt

func GetVersionsGt(versions []string, version string, inclusive, preReleases bool) []string

GetVersionsGt returns a list of versions greater than a semver string given a list of versions inclusive=true means that we test for equality as well preReleases=true means that we include pre-release versions in the list

func GetVersionsLt

func GetVersionsLt(versions []string, version string, inclusive, preReleases bool) []string

GetVersionsLt returns a list of versions less than than a semver string given a list of versions inclusive=true means that we test for equality as well preReleases=true means that we include pre-release versions in the list

func HandleValidationErrors

func HandleValidationErrors(e validator.ValidationErrors) error

HandleValidationErrors is the helper function to catch validator.ValidationError based on Namespace of the error, and return customized error message.

func IP4BroadcastAddress

func IP4BroadcastAddress(n *net.IPNet) net.IP

IP4BroadcastAddress returns the broadcast address for the given IP subnet.

func IsKubernetesVersionGe

func IsKubernetesVersionGe(actualVersion, version string) bool

IsKubernetesVersionGe returns true if actualVersion is greater than or equal to version

func IsNvidiaEnabledSKU

func IsNvidiaEnabledSKU(vmSize string) bool

IsNvidiaEnabledSKU determines if an VM SKU has nvidia driver support

func IsSgxEnabledSKU added in v0.30.0

func IsSgxEnabledSKU(vmSize string) bool

IsSgxEnabledSKU determines if an VM SKU has SGX driver support

func IsSupportedKubernetesVersion

func IsSupportedKubernetesVersion(version string, isUpdate, hasWindows bool) bool

IsSupportedKubernetesVersion return true if the provided Kubernetes version is supported

func IsValidMinVersion added in v0.43.0

func IsValidMinVersion(orchType, orchRelease, orchVersion, minVersion string) (bool, error)

func RationalizeReleaseAndVersion

func RationalizeReleaseAndVersion(orchType, orchRel, orchVer string, isUpdate, hasWindows bool) (version string)

RationalizeReleaseAndVersion return a version when it can be rationalized from the input, otherwise ""

func SliceIntIsNonEmpty added in v0.37.0

func SliceIntIsNonEmpty(s []int) bool

SliceIntIsNonEmpty is a simple convenience to determine if a []int is non-empty

func ValidateDNSPrefix

func ValidateDNSPrefix(dnsName string) error

ValidateDNSPrefix is a helper function to check that a DNS Prefix is valid

func WrapAsARMVariable added in v0.37.0

func WrapAsARMVariable(s string) string

WrapAsARMVariable formats a string for inserting an ARM variable into an ARM expression

func WrapAsParameter added in v0.37.0

func WrapAsParameter(s string) string

WrapAsParameter formats a string for inserting an ARM parameter into an ARM expression

func WrapAsVerbatim added in v0.37.0

func WrapAsVerbatim(s string) string

WrapAsVerbatim formats a string for inserting a literal string into an ARM expression

Types

This section is empty.

Jump to

Keyboard shortcuts

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