api

package
v0.23.1 Latest Latest
Warning

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

Go to latest
Published: Oct 12, 2018 License: MIT Imports: 29 Imported by: 0

Documentation

Overview

Package api stores an unversion api

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"
	// OpenShift is the string constant for the OpenShift orchestrator type
	OpenShift string = "OpenShift"
)

the orchestrators supported by vlabs

View Source
const (
	// SwarmVersion is the Swarm orchestrator version
	SwarmVersion = "swarm:1.1.0"
	// SwarmDockerComposeVersion is the Docker Compose version
	SwarmDockerComposeVersion = "1.6.2"
	// DockerCEVersion is the DockerCE orchestrator version
	DockerCEVersion = "17.03.*"
	// DockerCEDockerComposeVersion is the Docker Compose version
	DockerCEDockerComposeVersion = "1.14.0"
)
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
)

validation values

View Source
const (
	// AvailabilitySet means that the vms are in an availability set
	AvailabilitySet = "AvailabilitySet"
	// DefaultOrchestratorName specifies the 3 character orchestrator code of the cluster template and affects resource naming.
	DefaultOrchestratorName = "k8s"
	// DefaultOpenshiftOrchestratorName specifies the 3 character orchestrator code of the cluster template and affects resource naming.
	DefaultOpenshiftOrchestratorName = "ocp"
	// DefaultHostedProfileMasterName specifies the 3 character orchestrator code of the clusters with hosted master profiles.
	DefaultHostedProfileMasterName = "aks"
	// DefaultFirstConsecutiveKubernetesStaticIP specifies the static IP address on Kubernetes master 0
	DefaultFirstConsecutiveKubernetesStaticIP = "10.240.255.5"
	// DefaultFirstConsecutiveKubernetesStaticIPVMSS specifies the static IP address on Kubernetes master 0 of VMSS
	DefaultFirstConsecutiveKubernetesStaticIPVMSS = "10.240.0.4"
	// DefaultKubernetesFirstConsecutiveStaticIPOffset specifies the IP address offset of master 0
	// when VNET integration is enabled.
	DefaultKubernetesFirstConsecutiveStaticIPOffset = 5
	// DefaultKubernetesFirstConsecutiveStaticIPOffsetVMSS specifies the IP address offset of master 0 in VMSS
	// when VNET integration is enabled.
	DefaultKubernetesFirstConsecutiveStaticIPOffsetVMSS = 4
	// DefaultSubnetNameResourceSegmentIndex specifies the default subnet name resource segment index.
	DefaultSubnetNameResourceSegmentIndex = 10
	// DefaultVnetResourceGroupSegmentIndex specifies the default virtual network resource segment index.
	DefaultVnetResourceGroupSegmentIndex = 4
	// DefaultVnetNameResourceSegmentIndex specifies the default virtual network name segment index.
	DefaultVnetNameResourceSegmentIndex = 8
	// VirtualMachineScaleSets means that the vms are in a virtual machine scaleset
	VirtualMachineScaleSets = "VirtualMachineScaleSets"
	// ScaleSetPriorityRegular is the default ScaleSet Priority
	ScaleSetPriorityRegular = "Regular"
	// ScaleSetPriorityLow means the ScaleSet will use Low-priority VMs
	ScaleSetPriorityLow = "Low"
	// ScaleSetEvictionPolicyDelete is the default Eviction Policy for Low-priority VM ScaleSets
	ScaleSetEvictionPolicyDelete = "Delete"
	// ScaleSetEvictionPolicyDeallocate means a Low-priority VM ScaleSet will deallocate, rather than delete, VMs.
	ScaleSetEvictionPolicyDeallocate = "Deallocate"
)

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"
)

storage profiles

View Source
const (
	// DefaultTillerAddonEnabled determines the acs-engine provided default for enabling tiller addon
	DefaultTillerAddonEnabled = true
	// DefaultAADPodIdentityAddonEnabled determines the acs-engine provided default for enabling aad-pod-identity addon
	DefaultAADPodIdentityAddonEnabled = false
	// DefaultACIConnectorAddonEnabled determines the acs-engine provided default for enabling aci connector addon
	DefaultACIConnectorAddonEnabled = false
	// DefaultClusterAutoscalerAddonEnabled determines the acs-engine provided default for enabling cluster autoscaler addon
	DefaultClusterAutoscalerAddonEnabled = false
	// DefaultBlobfuseFlexVolumeAddonEnabled determines the acs-engine provided default for enabling blobfuse flexvolume addon
	DefaultBlobfuseFlexVolumeAddonEnabled = true
	// DefaultSMBFlexVolumeAddonEnabled determines the acs-engine provided default for enabling smb flexvolume addon
	DefaultSMBFlexVolumeAddonEnabled = true
	// DefaultKeyVaultFlexVolumeAddonEnabled determines the acs-engine provided default for enabling key vault flexvolume addon
	DefaultKeyVaultFlexVolumeAddonEnabled = true
	// DefaultDashboardAddonEnabled determines the acs-engine provided default for enabling kubernetes-dashboard addon
	DefaultDashboardAddonEnabled = true
	// DefaultReschedulerAddonEnabled determines the acs-engine provided default for enabling kubernetes-rescheduler addon
	DefaultReschedulerAddonEnabled = false
	// DefaultRBACEnabled determines the acs-engine provided default for enabling kubernetes RBAC
	DefaultRBACEnabled = true
	// DefaultUseInstanceMetadata determines the acs-engine provided default for enabling Azure cloudprovider instance metadata service
	DefaultUseInstanceMetadata = true
	// DefaultLoadBalancerSku determines the acs-engine provided default for enabling Azure cloudprovider load balancer SKU
	DefaultLoadBalancerSku = "Basic"
	// DefaultExcludeMasterFromStandardLB determines the acs-engine provided default for excluding master nodes from standard load balancer.
	DefaultExcludeMasterFromStandardLB = true
	// DefaultSecureKubeletEnabled determines the acs-engine provided default for securing kubelet communications
	DefaultSecureKubeletEnabled = true
	// DefaultMetricsServerAddonEnabled determines the acs-engine provided default for enabling kubernetes metrics-server addon
	DefaultMetricsServerAddonEnabled = false
	// DefaultNVIDIADevicePluginAddonEnabled determines the acs-engine provided default for enabling NVIDIA Device Plugin
	DefaultNVIDIADevicePluginAddonEnabled = false
	// DefaultContainerMonitoringAddonEnabled determines the acs-engine provided default for enabling kubernetes container monitoring addon
	DefaultContainerMonitoringAddonEnabled = false
	// DefaultAzureCNINetworkMonitoringAddonEnabled Azure CNI networkmonitor addon default
	DefaultAzureCNINetworkMonitoringAddonEnabled = false
	// IPMasqAgentAddonEnabled enables the ip-masq-agent addon
	IPMasqAgentAddonEnabled = true
	// DefaultTillerAddonName is the name of the tiller addon deployment
	DefaultTillerAddonName = "tiller"
	// DefaultAADPodIdentityAddonName is the name of the aad-pod-identity addon deployment
	DefaultAADPodIdentityAddonName = "aad-pod-identity"
	// DefaultACIConnectorAddonName is the name of the aci-connector addon deployment
	DefaultACIConnectorAddonName = "aci-connector"
	// DefaultClusterAutoscalerAddonName is the name of the cluster autoscaler addon deployment
	DefaultClusterAutoscalerAddonName = "cluster-autoscaler"
	// DefaultBlobfuseFlexVolumeAddonName is the name of the blobfuse flexvolume addon
	DefaultBlobfuseFlexVolumeAddonName = "blobfuse-flexvolume"
	// DefaultSMBFlexVolumeAddonName is the name of the smb flexvolume addon
	DefaultSMBFlexVolumeAddonName = "smb-flexvolume"
	// DefaultKeyVaultFlexVolumeAddonName is the name of the key vault flexvolume addon deployment
	DefaultKeyVaultFlexVolumeAddonName = "keyvault-flexvolume"
	// DefaultDashboardAddonName is the name of the kubernetes-dashboard addon deployment
	DefaultDashboardAddonName = "kubernetes-dashboard"
	// DefaultReschedulerAddonName is the name of the rescheduler addon deployment
	DefaultReschedulerAddonName = "rescheduler"
	// DefaultMetricsServerAddonName is the name of the kubernetes metrics server addon deployment
	DefaultMetricsServerAddonName = "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"
	// DefaultPrivateClusterEnabled determines the acs-engine provided default for enabling kubernetes Private Cluster
	DefaultPrivateClusterEnabled = false
	// NetworkPolicyAzure is the string expression for Azure CNI network policy manager
	NetworkPolicyAzure = "azure"
	// NetworkPolicyNone is the string expression for the deprecated NetworkPolicy usage pattern "none"
	NetworkPolicyNone = "none"
	// NetworkPluginKubenet is the string expression for the kubenet NetworkPlugin config
	NetworkPluginKubenet = "kubenet"
	// NetworkPluginAzure is the string expression for Azure CNI plugin.
	NetworkPluginAzure = "azure"
	// DefaultSinglePlacementGroup determines the acs-engine provided default for supporting large VMSS
	// (true = single placement group 0-100 VMs, false = multiple placement group 0-1000 VMs)
	DefaultSinglePlacementGroup = true
	// ARMNetworkNamespace is the ARM-specific namespace for ARM's network providers.
	ARMNetworkNamespace = "Microsoft.Networks"
	// ARMVirtualNetworksResourceType is the ARM resource type for virtual network resources of ARM.
	ARMVirtualNetworksResourceType = "virtualNetworks"
	// DefaultAcceleratedNetworkingWindowsEnabled determines the acs-engine provided default for enabling accelerated networking on Windows nodes
	DefaultAcceleratedNetworkingWindowsEnabled = false
)
View Source
const (
	// DefaultKubernetesCloudProviderBackoffRetries is 6, takes effect if DefaultKubernetesCloudProviderBackoff is true
	DefaultKubernetesCloudProviderBackoffRetries = 6
	// DefaultKubernetesCloudProviderBackoffJitter is 1, takes effect if DefaultKubernetesCloudProviderBackoff is true
	DefaultKubernetesCloudProviderBackoffJitter = 1.0
	// DefaultKubernetesCloudProviderBackoffDuration is 5, takes effect if DefaultKubernetesCloudProviderBackoff is true
	DefaultKubernetesCloudProviderBackoffDuration = 5
	// DefaultKubernetesCloudProviderBackoffExponent is 1.5, takes effect if DefaultKubernetesCloudProviderBackoff is true
	DefaultKubernetesCloudProviderBackoffExponent = 1.5
	// DefaultKubernetesCloudProviderRateLimitQPS is 3, takes effect if DefaultKubernetesCloudProviderRateLimit is true
	DefaultKubernetesCloudProviderRateLimitQPS = 3.0
	// DefaultKubernetesCloudProviderRateLimitBucket is 10, takes effect if DefaultKubernetesCloudProviderRateLimit is true
	DefaultKubernetesCloudProviderRateLimitBucket = 10
)
View Source
const (
	//AzureEdgeDCOSBootstrapDownloadURL is the azure edge CDN download url
	AzureEdgeDCOSBootstrapDownloadURL = "https://dcosio.azureedge.net/dcos/%s/bootstrap/%s.bootstrap.tar.xz"
	//AzureChinaCloudDCOSBootstrapDownloadURL is the China specific DCOS package download url.
	AzureChinaCloudDCOSBootstrapDownloadURL = "https://acsengine.blob.core.chinacloudapi.cn/dcos/%s.bootstrap.tar.xz"
)
View Source
const (
	// AzureCniPluginVerLinux specifies version of Azure CNI plugin, which has been mirrored from
	// https://github.com/Azure/azure-container-networking/releases/download/${AZURE_PLUGIN_VER}/azure-vnet-cni-linux-amd64-${AZURE_PLUGIN_VER}.tgz
	// to https://acs-mirror.azureedge.net/cni
	AzureCniPluginVerLinux = "v1.0.11"
	// AzureCniPluginVerWindows specifies version of Azure CNI plugin, which has been mirrored from
	// https://github.com/Azure/azure-container-networking/releases/download/${AZURE_PLUGIN_VER}/azure-vnet-cni-windows-amd64-${AZURE_PLUGIN_VER}.tgz
	// to https://acs-mirror.azureedge.net/cni
	AzureCniPluginVerWindows = "v1.0.11"
	// CNIPluginVer specifies the version of CNI implementation
	// https://github.com/containernetworking/plugins
	CNIPluginVer = "v0.7.1"
)
View Source
const (
	// DefaultKubernetesClusterSubnet specifies the default subnet for pods.
	DefaultKubernetesClusterSubnet = "10.244.0.0/16"
	// DefaultKubernetesServiceCIDR specifies the IP subnet that kubernetes will create Service IPs within.
	DefaultKubernetesServiceCIDR = "10.0.0.0/16"
	// DefaultKubernetesDNSServiceIP specifies the IP address that kube-dns listens on by default. must by in the default Service CIDR range.
	DefaultKubernetesDNSServiceIP = "10.0.0.10"
	// DefaultDockerBridgeSubnet specifies the default subnet for the docker bridge network for masters and agents.
	DefaultDockerBridgeSubnet = "172.17.0.1/16"
	// DefaultKubernetesMaxPodsKubenet is the maximum number of pods to run on a node for Kubenet.
	DefaultKubernetesMaxPodsKubenet = "110"
	// DefaultKubernetesMaxPodsAzureCNI is the maximum number of pods to run on a node for Azure CNI.
	DefaultKubernetesMaxPodsAzureCNI = "30"
)
View Source
const (
	// VHDDiskSizeAKS maps to the OSDiskSizeGB for AKS VHD image
	VHDDiskSizeAKS = 30
)

Variables

View Source
var (
	//DefaultKubernetesSpecConfig is the default Docker image source of Kubernetes
	DefaultKubernetesSpecConfig = KubernetesSpecConfig{
		KubernetesImageBase:              "k8s.gcr.io/",
		TillerImageBase:                  "gcr.io/kubernetes-helm/",
		ACIConnectorImageBase:            "microsoft/",
		NVIDIAImageBase:                  "nvidia/",
		AzureCNIImageBase:                "containernetworking/",
		EtcdDownloadURLBase:              "https://acs-mirror.azureedge.net/github-coreos",
		KubeBinariesSASURLBase:           "https://acs-mirror.azureedge.net/wink8s/",
		WindowsPackageSASURLBase:         "https://acs-mirror.azureedge.net/wink8s/",
		WindowsTelemetryGUID:             "fb801154-36b9-41bc-89c2-f4d4f05472b0",
		CNIPluginsDownloadURL:            "https://acs-mirror.azureedge.net/cni/cni-plugins-amd64-" + CNIPluginVer + ".tgz",
		VnetCNILinuxPluginsDownloadURL:   "https://acs-mirror.azureedge.net/cni/azure-vnet-cni-linux-amd64-" + AzureCniPluginVerLinux + ".tgz",
		VnetCNIWindowsPluginsDownloadURL: "https://acs-mirror.azureedge.net/cni/azure-vnet-cni-windows-amd64-" + AzureCniPluginVerWindows + ".zip",
		ContainerdDownloadURLBase:        "https://storage.googleapis.com/cri-containerd-release/",
	}

	//DefaultDCOSSpecConfig is the default DC/OS binary download URL.
	DefaultDCOSSpecConfig = DCOSSpecConfig{
		DCOS188BootstrapDownloadURL:     fmt.Sprintf(AzureEdgeDCOSBootstrapDownloadURL, "stable", "5df43052907c021eeb5de145419a3da1898c58a5"),
		DCOS190BootstrapDownloadURL:     fmt.Sprintf(AzureEdgeDCOSBootstrapDownloadURL, "stable", "58fd0833ce81b6244fc73bf65b5deb43217b0bd7"),
		DCOS198BootstrapDownloadURL:     fmt.Sprintf(AzureEdgeDCOSBootstrapDownloadURL, "stable/1.9.8", "f4ae0d20665fc68ee25282d6f78681b2773c6e10"),
		DCOS110BootstrapDownloadURL:     fmt.Sprintf(AzureEdgeDCOSBootstrapDownloadURL, "stable/1.10.0", "4d92536e7381176206e71ee15b5ffe454439920c"),
		DCOS111BootstrapDownloadURL:     fmt.Sprintf(AzureEdgeDCOSBootstrapDownloadURL, "stable/1.11.0", "a0654657903fb68dff60f6e522a7f241c1bfbf0f"),
		DCOSWindowsBootstrapDownloadURL: "http://dcos-win.westus.cloudapp.azure.com/dcos-windows/stable/",
		DcosRepositoryURL:               "https://dcosio.azureedge.net/dcos/stable/1.11.0",
		DcosClusterPackageListID:        "248a66388bba1adbcb14a52fd3b7b424ab06fa76",
	}

	//DefaultDockerSpecConfig is the default Docker engine repo.
	DefaultDockerSpecConfig = DockerSpecConfig{
		DockerEngineRepo:         "https://aptdocker.azureedge.net/repo",
		DockerComposeDownloadURL: "https://github.com/docker/compose/releases/download",
	}

	//DefaultUbuntuImageConfig is the default Linux distribution.
	DefaultUbuntuImageConfig = AzureOSImageConfig{
		ImageOffer:     "UbuntuServer",
		ImageSku:       "16.04-LTS",
		ImagePublisher: "Canonical",
		ImageVersion:   "16.04.201809120",
	}

	//SovereignCloudsUbuntuImageConfig is the Linux distribution for Azure Sovereign Clouds.
	SovereignCloudsUbuntuImageConfig = AzureOSImageConfig{
		ImageOffer:     "UbuntuServer",
		ImageSku:       "16.04-LTS",
		ImagePublisher: "Canonical",
		ImageVersion:   "latest",
	}

	//GermanCloudUbuntuImageConfig is the Linux distribution for Azure Sovereign Clouds.
	GermanCloudUbuntuImageConfig = AzureOSImageConfig{
		ImageOffer:     "UbuntuServer",
		ImageSku:       "16.04-LTS",
		ImagePublisher: "Canonical",
		ImageVersion:   "16.04.201801050",
	}

	//DefaultRHELOSImageConfig is the RHEL Linux distribution.
	DefaultRHELOSImageConfig = AzureOSImageConfig{
		ImageOffer:     "RHEL",
		ImageSku:       "7.3",
		ImagePublisher: "RedHat",
		ImageVersion:   "latest",
	}

	//DefaultCoreOSImageConfig is the CoreOS Linux distribution.
	DefaultCoreOSImageConfig = AzureOSImageConfig{
		ImageOffer:     "CoreOS",
		ImageSku:       "Stable",
		ImagePublisher: "CoreOS",
		ImageVersion:   "latest",
	}

	// DefaultAKSOSImageConfig is the AKS image based on Ubuntu 16.04.
	DefaultAKSOSImageConfig = AzureOSImageConfig{
		ImageOffer:     "aks",
		ImageSku:       "aksbase",
		ImagePublisher: "microsoft-aks",
		ImageVersion:   "0.18.0",
	}

	//DefaultOpenShift39RHELImageConfig is the OpenShift on RHEL distribution.
	DefaultOpenShift39RHELImageConfig = AzureOSImageConfig{
		ImageOffer:     "acsengine-preview",
		ImageSku:       "rhel74",
		ImagePublisher: "redhat",
		ImageVersion:   "latest",
	}

	//DefaultOpenShift39CentOSImageConfig is the OpenShift on CentOS distribution.
	DefaultOpenShift39CentOSImageConfig = AzureOSImageConfig{
		ImageOffer:     "origin-acsengine-preview",
		ImageSku:       "centos7",
		ImagePublisher: "redhat",
		ImageVersion:   "latest",
	}

	//AzureCloudSpec is the default configurations for global azure.
	AzureCloudSpec = AzureEnvironmentSpecConfig{
		CloudName: azurePublicCloud,

		DockerSpecConfig: DefaultDockerSpecConfig,

		KubernetesSpecConfig: DefaultKubernetesSpecConfig,
		DCOSSpecConfig:       DefaultDCOSSpecConfig,

		EndpointConfig: AzureEndpointConfig{
			ResourceManagerVMDNSSuffix: "cloudapp.azure.com",
		},

		OSImageConfig: map[Distro]AzureOSImageConfig{
			Ubuntu: DefaultUbuntuImageConfig,
			RHEL:   DefaultRHELOSImageConfig,
			CoreOS: DefaultCoreOSImageConfig,
			AKS:    DefaultAKSOSImageConfig,

			OpenShift39RHEL: DefaultOpenShift39RHELImageConfig,
			OpenShiftCentOS: DefaultOpenShift39CentOSImageConfig,
		},
	}

	//AzureGermanCloudSpec is the German cloud config.
	AzureGermanCloudSpec = AzureEnvironmentSpecConfig{
		CloudName:            azureGermanCloud,
		DockerSpecConfig:     DefaultDockerSpecConfig,
		KubernetesSpecConfig: DefaultKubernetesSpecConfig,
		DCOSSpecConfig:       DefaultDCOSSpecConfig,
		EndpointConfig: AzureEndpointConfig{
			ResourceManagerVMDNSSuffix: "cloudapp.microsoftazure.de",
		},
		OSImageConfig: map[Distro]AzureOSImageConfig{
			Ubuntu: GermanCloudUbuntuImageConfig,
			RHEL:   DefaultRHELOSImageConfig,
			CoreOS: DefaultCoreOSImageConfig,
			AKS:    GermanCloudUbuntuImageConfig,
		},
	}

	//AzureUSGovernmentCloud is the US government config.
	AzureUSGovernmentCloud = AzureEnvironmentSpecConfig{
		CloudName:            azureUSGovernmentCloud,
		DockerSpecConfig:     DefaultDockerSpecConfig,
		KubernetesSpecConfig: DefaultKubernetesSpecConfig,
		DCOSSpecConfig:       DefaultDCOSSpecConfig,
		EndpointConfig: AzureEndpointConfig{
			ResourceManagerVMDNSSuffix: "cloudapp.usgovcloudapi.net",
		},
		OSImageConfig: map[Distro]AzureOSImageConfig{
			Ubuntu: SovereignCloudsUbuntuImageConfig,
			RHEL:   DefaultRHELOSImageConfig,
			CoreOS: DefaultCoreOSImageConfig,
			AKS:    SovereignCloudsUbuntuImageConfig,
		},
	}

	//AzureChinaCloudSpec is the configurations for Azure China (Mooncake)
	AzureChinaCloudSpec = AzureEnvironmentSpecConfig{
		CloudName: azureChinaCloud,

		DockerSpecConfig: DockerSpecConfig{
			DockerEngineRepo:         "https://mirror.azure.cn/docker-engine/apt/repo/",
			DockerComposeDownloadURL: "https://mirror.azure.cn/docker-toolbox/linux/compose",
		},

		KubernetesSpecConfig: KubernetesSpecConfig{
			KubernetesImageBase:              "gcr.akscn.io/google_containers/",
			TillerImageBase:                  "gcr.akscn.io/kubernetes-helm/",
			ACIConnectorImageBase:            "dockerhub.akscn.io/microsoft/",
			NVIDIAImageBase:                  "dockerhub.akscn.io/nvidia/",
			AzureCNIImageBase:                "dockerhub.akscn.io/containernetworking/",
			EtcdDownloadURLBase:              DefaultKubernetesSpecConfig.EtcdDownloadURLBase,
			KubeBinariesSASURLBase:           DefaultKubernetesSpecConfig.KubeBinariesSASURLBase,
			WindowsPackageSASURLBase:         DefaultKubernetesSpecConfig.WindowsPackageSASURLBase,
			WindowsTelemetryGUID:             DefaultKubernetesSpecConfig.WindowsTelemetryGUID,
			CNIPluginsDownloadURL:            DefaultKubernetesSpecConfig.CNIPluginsDownloadURL,
			VnetCNILinuxPluginsDownloadURL:   DefaultKubernetesSpecConfig.VnetCNILinuxPluginsDownloadURL,
			VnetCNIWindowsPluginsDownloadURL: DefaultKubernetesSpecConfig.VnetCNIWindowsPluginsDownloadURL,
			ContainerdDownloadURLBase:        "https://mirror.azure.cn/kubernetes/containerd/",
		},
		DCOSSpecConfig: DCOSSpecConfig{
			DCOS188BootstrapDownloadURL:     fmt.Sprintf(AzureChinaCloudDCOSBootstrapDownloadURL, "5df43052907c021eeb5de145419a3da1898c58a5"),
			DCOSWindowsBootstrapDownloadURL: "https://dcosdevstorage.blob.core.windows.net/dcos-windows",
			DCOS190BootstrapDownloadURL:     fmt.Sprintf(AzureChinaCloudDCOSBootstrapDownloadURL, "58fd0833ce81b6244fc73bf65b5deb43217b0bd7"),
			DCOS198BootstrapDownloadURL:     fmt.Sprintf(AzureChinaCloudDCOSBootstrapDownloadURL, "f4ae0d20665fc68ee25282d6f78681b2773c6e10"),
		},

		EndpointConfig: AzureEndpointConfig{
			ResourceManagerVMDNSSuffix: "cloudapp.chinacloudapi.cn",
		},
		OSImageConfig: map[Distro]AzureOSImageConfig{
			Ubuntu: SovereignCloudsUbuntuImageConfig,
			RHEL:   DefaultRHELOSImageConfig,
			CoreOS: DefaultCoreOSImageConfig,
			AKS:    SovereignCloudsUbuntuImageConfig,
		},
	}
)

Functions

func ConvertContainerServiceToV20160330

func ConvertContainerServiceToV20160330(api *ContainerService) *v20160330.ContainerService

ConvertContainerServiceToV20160330 converts an unversioned ContainerService to a v20160330 ContainerService

func ConvertContainerServiceToV20160930

func ConvertContainerServiceToV20160930(api *ContainerService) *v20160930.ContainerService

ConvertContainerServiceToV20160930 converts an unversioned ContainerService to a v20160930 ContainerService

func ConvertContainerServiceToV20170131

func ConvertContainerServiceToV20170131(api *ContainerService) *v20170131.ContainerService

ConvertContainerServiceToV20170131 converts an unversioned ContainerService to a v20170131 ContainerService

func ConvertContainerServiceToV20170701 added in v0.2.0

func ConvertContainerServiceToV20170701(api *ContainerService) *v20170701.ContainerService

ConvertContainerServiceToV20170701 converts an unversioned ContainerService to a v20170701 ContainerService

func ConvertContainerServiceToV20170831AgentPoolOnly added in v0.6.0

func ConvertContainerServiceToV20170831AgentPoolOnly(api *ContainerService) *v20170831.ManagedCluster

ConvertContainerServiceToV20170831AgentPoolOnly converts an unversioned ContainerService to a v20170831 ContainerService

func ConvertContainerServiceToV20180331AgentPoolOnly added in v0.14.1

func ConvertContainerServiceToV20180331AgentPoolOnly(api *ContainerService) *v20180331.ManagedCluster

ConvertContainerServiceToV20180331AgentPoolOnly converts an unversioned ContainerService to a v20180331 ContainerService

func ConvertContainerServiceToVLabs

func ConvertContainerServiceToVLabs(api *ContainerService) *vlabs.ContainerService

ConvertContainerServiceToVLabs converts an unversioned ContainerService to a vlabs ContainerService

func ConvertContainerServiceToVLabsOpenShiftCluster added in v0.21.0

func ConvertContainerServiceToVLabsOpenShiftCluster(cs *ContainerService) *vlabs.OpenShiftCluster

ConvertContainerServiceToVLabsOpenShiftCluster converts from a ContainerService to a vlabs.OpenShiftCluster.

func ConvertOrchestratorVersionProfileToV20170930 added in v0.6.0

func ConvertOrchestratorVersionProfileToV20170930(api *OrchestratorVersionProfile) *v20170930.OrchestratorVersionProfile

ConvertOrchestratorVersionProfileToV20170930 converts an unversioned OrchestratorVersionProfile to a v20170930 OrchestratorVersionProfile

func ConvertOrchestratorVersionProfileToVLabs added in v0.6.0

func ConvertOrchestratorVersionProfileToVLabs(api *OrchestratorVersionProfile) *vlabs.OrchestratorVersionProfile

ConvertOrchestratorVersionProfileToVLabs converts an unversioned OrchestratorVersionProfile to a vlabs OrchestratorVersionProfile

func GetOrchestratorVersionProfileListV20170930 added in v0.8.0

func GetOrchestratorVersionProfileListV20170930(orchestrator, version string) (*v20170930.OrchestratorVersionProfileList, error)

GetOrchestratorVersionProfileListV20170930 returns v20170930 OrchestratorVersionProfileList object per (optionally) specified orchestrator and version

func GetOrchestratorVersionProfileListVLabs added in v0.8.0

func GetOrchestratorVersionProfileListVLabs(orchestrator, version string) (*vlabs.OrchestratorVersionProfileList, error)

GetOrchestratorVersionProfileListVLabs returns vlabs OrchestratorVersionProfileList object per (optionally) specified orchestrator and version

func IsNSeriesSKU added in v0.21.0

func IsNSeriesSKU(p *Properties) bool

IsNSeriesSKU returns whether or not the agent pool has Standard_N SKU VMs

Types

type AADProfile added in v0.6.0

type AADProfile struct {
	// The client AAD application ID.
	ClientAppID string `json:"clientAppID,omitempty"`
	// The server AAD application ID.
	ServerAppID string `json:"serverAppID,omitempty"`
	// The server AAD application secret
	ServerAppSecret string `json:"serverAppSecret,omitempty" conform:"redact"`
	// The AAD tenant ID to use for authentication.
	// If not specified, will use the tenant of the deployment subscription.
	// Optional
	TenantID string `json:"tenantID,omitempty"`
	// The Azure Active Directory Group Object ID that will be assigned the
	// cluster-admin RBAC role.
	// Optional
	AdminGroupID string `json:"adminGroupID,omitempty"`
	// The authenticator to use, either "oidc" or "webhook".
	Authenticator AuthenticatorType `json:"authenticator"`
}

AADProfile specifies attributes for AAD integration

type AddonProfile added in v0.14.1

type AddonProfile struct {
	Enabled bool              `json:"enabled"`
	Config  map[string]string `json:"config"`
}

AddonProfile represents an addon for managed cluster

type AgentPoolProfile

type AgentPoolProfile struct {
	Name                                string               `json:"name"`
	Count                               int                  `json:"count"`
	VMSize                              string               `json:"vmSize"`
	OSDiskSizeGB                        int                  `json:"osDiskSizeGB,omitempty"`
	DNSPrefix                           string               `json:"dnsPrefix,omitempty"`
	OSType                              OSType               `json:"osType,omitempty"`
	Ports                               []int                `json:"ports,omitempty"`
	AvailabilityProfile                 string               `json:"availabilityProfile"`
	ScaleSetPriority                    string               `json:"scaleSetPriority,omitempty"`
	ScaleSetEvictionPolicy              string               `json:"scaleSetEvictionPolicy,omitempty"`
	StorageProfile                      string               `json:"storageProfile,omitempty"`
	DiskSizesGB                         []int                `json:"diskSizesGB,omitempty"`
	VnetSubnetID                        string               `json:"vnetSubnetID,omitempty"`
	Subnet                              string               `json:"subnet"`
	IPAddressCount                      int                  `json:"ipAddressCount,omitempty"`
	Distro                              Distro               `json:"distro,omitempty"`
	Role                                AgentPoolProfileRole `json:"role,omitempty"`
	AcceleratedNetworkingEnabled        *bool                `json:"acceleratedNetworkingEnabled,omitempty"`
	AcceleratedNetworkingEnabledWindows *bool                `json:"acceleratedNetworkingEnabledWindows,omitempty"`
	FQDN                                string               `json:"fqdn,omitempty"`
	CustomNodeLabels                    map[string]string    `json:"customNodeLabels,omitempty"`
	PreprovisionExtension               *Extension           `json:"preProvisionExtension"`
	Extensions                          []Extension          `json:"extensions"`
	KubernetesConfig                    *KubernetesConfig    `json:"kubernetesConfig,omitempty"`
	ImageRef                            *ImageReference      `json:"imageReference,omitempty"`
	MaxCount                            *int                 `json:"maxCount,omitempty"`
	MinCount                            *int                 `json:"minCount,omitempty"`
	EnableAutoScaling                   *bool                `json:"enableAutoScaling,omitempty"`
	AvailabilityZones                   []string             `json:"availabilityZones,omitempty"`
	SinglePlacementGroup                *bool                `json:"singlePlacementGroup,omitempty"`
}

AgentPoolProfile represents an agent pool definition

func (*AgentPoolProfile) HasAvailabilityZones added in v0.22.0

func (a *AgentPoolProfile) HasAvailabilityZones() bool

HasAvailabilityZones returns true if the agent pool has availability zones

func (*AgentPoolProfile) HasDisks

func (a *AgentPoolProfile) HasDisks() bool

HasDisks returns true if the customer specified disks

func (*AgentPoolProfile) IsAvailabilitySets

func (a *AgentPoolProfile) IsAvailabilitySets() bool

IsAvailabilitySets returns true if the customer specified disks

func (*AgentPoolProfile) IsCoreOS added in v0.10.0

func (a *AgentPoolProfile) IsCoreOS() bool

IsCoreOS returns true if the agent specified a CoreOS distro

func (*AgentPoolProfile) IsCustomVNET

func (a *AgentPoolProfile) IsCustomVNET() bool

IsCustomVNET returns true if the customer brought their own VNET

func (*AgentPoolProfile) IsLinux

func (a *AgentPoolProfile) IsLinux() bool

IsLinux returns true if the agent pool is linux

func (*AgentPoolProfile) IsLowPriorityScaleSet added in v0.18.0

func (a *AgentPoolProfile) IsLowPriorityScaleSet() bool

IsLowPriorityScaleSet returns true if the VMSS is Low Priority

func (*AgentPoolProfile) IsManagedDisks

func (a *AgentPoolProfile) IsManagedDisks() bool

IsManagedDisks returns true if the customer specified disks

func (*AgentPoolProfile) IsRHEL added in v0.7.0

func (a *AgentPoolProfile) IsRHEL() bool

IsRHEL returns true if the agent pool specified a RHEL distro

func (*AgentPoolProfile) IsStorageAccount

func (a *AgentPoolProfile) IsStorageAccount() bool

IsStorageAccount returns true if the customer specified storage account

func (*AgentPoolProfile) IsVirtualMachineScaleSets added in v0.17.0

func (a *AgentPoolProfile) IsVirtualMachineScaleSets() bool

IsVirtualMachineScaleSets returns true if the agent pool availability profile is VMSS

func (*AgentPoolProfile) IsWindows

func (a *AgentPoolProfile) IsWindows() bool

IsWindows returns true if the agent pool is windows

type AgentPoolProfileRole added in v0.17.0

type AgentPoolProfileRole string

AgentPoolProfileRole represents an agent role

const (
	// AgentPoolProfileRoleEmpty is the empty role.  Deprecated; only used in
	// acs-engine.
	AgentPoolProfileRoleEmpty AgentPoolProfileRole = ""
	// AgentPoolProfileRoleCompute is the compute role
	AgentPoolProfileRoleCompute AgentPoolProfileRole = "compute"
	// AgentPoolProfileRoleInfra is the infra role
	AgentPoolProfileRoleInfra AgentPoolProfileRole = "infra"
	// AgentPoolProfileRoleMaster is the master role
	AgentPoolProfileRoleMaster AgentPoolProfileRole = "master"
)

type Apiloader added in v0.5.0

type Apiloader struct {
	Translator *i18n.Translator
}

Apiloader represents the object that loads api model

func (*Apiloader) DeserializeContainerService added in v0.5.0

func (a *Apiloader) DeserializeContainerService(contents []byte, validate, isUpdate bool, existingContainerService *ContainerService) (*ContainerService, string, error)

DeserializeContainerService loads an ACS Cluster API Model, validates it, and returns the unversioned representation

func (*Apiloader) LoadContainerService added in v0.5.0

func (a *Apiloader) LoadContainerService(
	contents []byte,
	version string,
	validate, isUpdate bool,
	existingContainerService *ContainerService) (*ContainerService, error)

LoadContainerService loads an ACS Cluster API Model, validates it, and returns the unversioned representation

func (*Apiloader) LoadContainerServiceForAgentPoolOnlyCluster added in v0.6.0

func (a *Apiloader) LoadContainerServiceForAgentPoolOnlyCluster(
	contents []byte,
	version string,
	validate, isUpdate bool,
	defaultKubernetesVersion string,
	existingContainerService *ContainerService) (*ContainerService, bool, error)

LoadContainerServiceForAgentPoolOnlyCluster loads an ACS Cluster API Model, validates it, and returns the unversioned representation

func (*Apiloader) LoadContainerServiceFromFile added in v0.5.0

func (a *Apiloader) LoadContainerServiceFromFile(jsonFile string, validate, isUpdate bool, existingContainerService *ContainerService) (*ContainerService, string, error)

LoadContainerServiceFromFile loads an ACS Cluster API Model from a JSON file

func (*Apiloader) SerializeContainerService added in v0.5.0

func (a *Apiloader) SerializeContainerService(containerService *ContainerService, version string) ([]byte, error)

SerializeContainerService takes an unversioned container service and returns the bytes

type AuthenticatorType added in v0.17.0

type AuthenticatorType string

AuthenticatorType represents the authenticator type the cluster was set up with.

const (
	// OIDC represent cluster setup in OIDC auth mode
	OIDC AuthenticatorType = "oidc"
	// Webhook represent cluster setup in wehhook auth mode
	Webhook AuthenticatorType = "webhook"
)

type AzProfile added in v0.17.0

type AzProfile struct {
	TenantID       string `json:"tenantId,omitempty"`
	SubscriptionID string `json:"subscriptionId,omitempty"`
	ResourceGroup  string `json:"resourceGroup,omitempty"`
	Location       string `json:"location,omitempty"`
}

AzProfile holds the azure context for where the cluster resides

type AzureEndpointConfig added in v0.23.0

type AzureEndpointConfig struct {
	ResourceManagerVMDNSSuffix string
}

AzureEndpointConfig describes an Azure endpoint

type AzureEnvironmentSpecConfig added in v0.23.0

type AzureEnvironmentSpecConfig struct {
	CloudName            string
	DockerSpecConfig     DockerSpecConfig
	KubernetesSpecConfig KubernetesSpecConfig
	DCOSSpecConfig       DCOSSpecConfig
	EndpointConfig       AzureEndpointConfig
	OSImageConfig        map[Distro]AzureOSImageConfig
}

AzureEnvironmentSpecConfig is the overall configuration differences in different cloud environments.

type AzureOSImageConfig added in v0.23.0

type AzureOSImageConfig struct {
	ImageOffer     string
	ImageSku       string
	ImagePublisher string
	ImageVersion   string
}

AzureOSImageConfig describes an Azure OS image

type BootstrapProfile added in v0.17.0

type BootstrapProfile struct {
	VMSize       string `json:"vmSize,omitempty"`
	OSDiskSizeGB int    `json:"osDiskSizeGB,omitempty"`
	OAuthEnabled bool   `json:"oauthEnabled,omitempty"`
	StaticIP     string `json:"staticIP,omitempty"`
	Subnet       string `json:"subnet,omitempty"`
}

BootstrapProfile represents the definition of the DCOS bootstrap node used to deploy the cluster

type CertificateProfile

type CertificateProfile struct {
	// CaCertificate is the certificate authority certificate.
	CaCertificate string `json:"caCertificate,omitempty" conform:"redact"`
	// CaPrivateKey is the certificate authority key.
	CaPrivateKey string `json:"caPrivateKey,omitempty" conform:"redact"`
	// ApiServerCertificate is the rest api server certificate, and signed by the CA
	APIServerCertificate string `json:"apiServerCertificate,omitempty" conform:"redact"`
	// ApiServerPrivateKey is the rest api server private key, and signed by the CA
	APIServerPrivateKey string `json:"apiServerPrivateKey,omitempty" conform:"redact"`
	// ClientCertificate is the certificate used by the client kubelet services and signed by the CA
	ClientCertificate string `json:"clientCertificate,omitempty" conform:"redact"`
	// ClientPrivateKey is the private key used by the client kubelet services and signed by the CA
	ClientPrivateKey string `json:"clientPrivateKey,omitempty" conform:"redact"`
	// KubeConfigCertificate is the client certificate used for kubectl cli and signed by the CA
	KubeConfigCertificate string `json:"kubeConfigCertificate,omitempty" conform:"redact"`
	// KubeConfigPrivateKey is the client private key used for kubectl cli and signed by the CA
	KubeConfigPrivateKey string `json:"kubeConfigPrivateKey,omitempty" conform:"redact"`
	// EtcdServerCertificate is the server certificate for etcd, and signed by the CA
	EtcdServerCertificate string `json:"etcdServerCertificate,omitempty" conform:"redact"`
	// EtcdServerPrivateKey is the server private key for etcd, and signed by the CA
	EtcdServerPrivateKey string `json:"etcdServerPrivateKey,omitempty" conform:"redact"`
	// EtcdClientCertificate is etcd client certificate, and signed by the CA
	EtcdClientCertificate string `json:"etcdClientCertificate,omitempty" conform:"redact"`
	// EtcdClientPrivateKey is the etcd client private key, and signed by the CA
	EtcdClientPrivateKey string `json:"etcdClientPrivateKey,omitempty" conform:"redact"`
	// EtcdPeerCertificates is list of etcd peer certificates, and signed by the CA
	EtcdPeerCertificates []string `json:"etcdPeerCertificates,omitempty" conform:"redact"`
	// EtcdPeerPrivateKeys is list of etcd peer private keys, and signed by the CA
	EtcdPeerPrivateKeys []string `json:"etcdPeerPrivateKeys,omitempty" conform:"redact"`
}

CertificateProfile represents the definition of the master cluster

type CloudProviderConfig added in v0.12.0

type CloudProviderConfig struct {
	CloudProviderBackoff         *bool  `json:"cloudProviderBackoff,omitempty"`
	CloudProviderBackoffRetries  int    `json:"cloudProviderBackoffRetries,omitempty"`
	CloudProviderBackoffJitter   string `json:"cloudProviderBackoffJitter,omitempty"`
	CloudProviderBackoffDuration int    `json:"cloudProviderBackoffDuration,omitempty"`
	CloudProviderBackoffExponent string `json:"cloudProviderBackoffExponent,omitempty"`
	CloudProviderRateLimit       *bool  `json:"cloudProviderRateLimit,omitempty"`
	CloudProviderRateLimitQPS    string `json:"cloudProviderRateLimitQPS,omitempty"`
	CloudProviderRateLimitBucket int    `json:"cloudProviderRateLimitBucket,omitempty"`
}

CloudProviderConfig contains the KubernetesConfig properties specific to the Cloud Provider

type ClusterMetadata added in v0.23.0

type ClusterMetadata struct {
	SubnetName                 string `json:"subnetName,omitempty"`
	VNetResourceGroupName      string `json:"vnetResourceGroupName,omitempty"`
	VirtualNetworkName         string `json:"virtualNetworkName,omitempty"`
	SecurityGroupName          string `json:"securityGroupName,omitempty"`
	RouteTableName             string `json:"routeTableName,omitempty"`
	PrimaryAvailabilitySetName string `json:"primaryAvailabilitySetName,omitempty"`
	PrimaryScaleSetName        string `json:"primaryScaleSetName,omitempty"`
	ResourcePrefix             string `json:"resourcePrefix,omitempty"`
}

ClusterMetadata represents the metadata of the ACS cluster.

type ContainerService

type ContainerService struct {
	ID       string                `json:"id"`
	Location string                `json:"location"`
	Name     string                `json:"name"`
	Plan     *ResourcePurchasePlan `json:"plan,omitempty"`
	Tags     map[string]string     `json:"tags"`
	Type     string                `json:"type"`

	Properties *Properties `json:"properties,omitempty"`
}

ContainerService complies with the ARM model of resource definition in a JSON template.

func ConvertV20160330ContainerService

func ConvertV20160330ContainerService(v20160330 *v20160330.ContainerService) *ContainerService

ConvertV20160330ContainerService converts a v20160330 ContainerService to an unversioned ContainerService

func ConvertV20160930ContainerService

func ConvertV20160930ContainerService(v20160930 *v20160930.ContainerService) *ContainerService

ConvertV20160930ContainerService converts a v20160930 ContainerService to an unversioned ContainerService

func ConvertV20170131ContainerService

func ConvertV20170131ContainerService(v20170131 *v20170131.ContainerService) *ContainerService

ConvertV20170131ContainerService converts a v20170131 ContainerService to an unversioned ContainerService

func ConvertV20170701ContainerService added in v0.2.0

func ConvertV20170701ContainerService(v20170701 *v20170701.ContainerService) *ContainerService

ConvertV20170701ContainerService converts a v20170701 ContainerService to an unversioned ContainerService

func ConvertV20170831AgentPoolOnly added in v0.6.0

func ConvertV20170831AgentPoolOnly(v20170831 *v20170831.ManagedCluster) *ContainerService

ConvertV20170831AgentPoolOnly converts an AgentPoolOnly object into an in-memory container service

func ConvertV20180331AgentPoolOnly added in v0.14.1

func ConvertV20180331AgentPoolOnly(v20180331 *v20180331.ManagedCluster) *ContainerService

ConvertV20180331AgentPoolOnly converts an AgentPoolOnly object into an in-memory container service

func ConvertVLabsAgentPoolOnly added in v0.6.0

func ConvertVLabsAgentPoolOnly(vlabs *vlabs.ManagedCluster) *ContainerService

ConvertVLabsAgentPoolOnly converts a vlabs ContainerService to an unversioned ContainerService

func ConvertVLabsContainerService

func ConvertVLabsContainerService(vlabs *vlabs.ContainerService, isUpdate bool) *ContainerService

ConvertVLabsContainerService converts a vlabs ContainerService to an unversioned ContainerService

func ConvertVLabsOpenShiftClusterToContainerService added in v0.21.0

func ConvertVLabsOpenShiftClusterToContainerService(oc *vlabs.OpenShiftCluster) *ContainerService

ConvertVLabsOpenShiftClusterToContainerService converts from a vlabs.OpenShiftCluster to a ContainerService.

func (*ContainerService) GetCloudSpecConfig added in v0.23.0

func (cs *ContainerService) GetCloudSpecConfig() AzureEnvironmentSpecConfig

GetCloudSpecConfig returns the Kubernetes container images URL configurations based on the deploy target environment. for example: if the target is the public azure, then the default container image url should be k8s.gcr.io/... if the target is azure china, then the default container image should be mirror.azure.cn:5000/google_container/...

type CustomFile added in v0.19.0

type CustomFile struct {
	Source string `json:"source,omitempty"`
	Dest   string `json:"dest,omitempty"`
}

CustomFile has source as the full absolute source path to a file and dest is the full absolute desired destination path to put the file on a master node

type CustomNodesDNS added in v0.18.0

type CustomNodesDNS struct {
	DNSServer string `json:"dnsServer,omitempty"`
}

CustomNodesDNS represents the Search Domain when the custom vnet for a custom DNS as a nameserver.

type CustomProfile

type CustomProfile struct {
	Orchestrator string `json:"orchestrator,omitempty"`
}

CustomProfile specifies custom properties that are used for cluster instantiation. Should not be used by most users.

type CustomSearchDomain added in v0.18.0

type CustomSearchDomain struct {
	Name          string `json:"name,omitempty"`
	RealmUser     string `json:"realmUser,omitempty"`
	RealmPassword string `json:"realmPassword,omitempty"`
}

CustomSearchDomain represents the Search Domain when the custom vnet has a windows server DNS as a nameserver.

type DCOSSpecConfig added in v0.23.0

type DCOSSpecConfig struct {
	DCOS188BootstrapDownloadURL     string
	DCOS190BootstrapDownloadURL     string
	DCOS198BootstrapDownloadURL     string
	DCOS110BootstrapDownloadURL     string
	DCOS111BootstrapDownloadURL     string
	DCOSWindowsBootstrapDownloadURL string
	DcosRepositoryURL               string // For custom install, for example CI, need these three addributes
	DcosClusterPackageListID        string // the id of the package list file
	DcosProviderPackageID           string // the id of the dcos-provider-xxx package
}

DCOSSpecConfig is the configurations of DCOS

type DcosConfig added in v0.7.0

type DcosConfig struct {
	DcosBootstrapURL         string            `json:"dcosBootstrapURL,omitempty"`
	DcosWindowsBootstrapURL  string            `json:"dcosWindowsBootstrapURL,omitempty"`
	Registry                 string            `json:"registry,omitempty"`
	RegistryUser             string            `json:"registryUser,omitempty"`
	RegistryPass             string            `json:"registryPassword,omitempty"`
	DcosRepositoryURL        string            `json:"dcosRepositoryURL,omitempty"`        // For CI use, you need to specify
	DcosClusterPackageListID string            `json:"dcosClusterPackageListID,omitempty"` // all three of these items
	DcosProviderPackageID    string            `json:"dcosProviderPackageID,omitempty"`    // repo url is the location of the build,
	BootstrapProfile         *BootstrapProfile `json:"bootstrapProfile,omitempty"`
}

DcosConfig Configuration for DC/OS

type DiagnosticsProfile

type DiagnosticsProfile struct {
	VMDiagnostics *VMDiagnostics `json:"vmDiagnostics"`
}

DiagnosticsProfile setting to enable/disable capturing diagnostics for VMs hosting container cluster.

type Distro added in v0.7.0

type Distro string

Distro represents Linux distro to use for Linux VMs

const (
	Ubuntu Distro = "ubuntu"
	RHEL   Distro = "rhel"
	CoreOS Distro = "coreos"
	AKS    Distro = "aks"
	// Supported distros by OpenShift
	OpenShift39RHEL Distro = "openshift39_rhel"
	OpenShiftCentOS Distro = "openshift39_centos"
)

the LinuxDistros supported by vlabs

type DockerSpecConfig added in v0.23.0

type DockerSpecConfig struct {
	DockerEngineRepo         string
	DockerComposeDownloadURL string
}

DockerSpecConfig is the configurations of docker

type Extension added in v0.6.0

type Extension struct {
	Name        string `json:"name"`
	SingleOrAll string `json:"singleOrAll"`
	Template    string `json:"template"`
}

Extension represents an extension definition in the master or agentPoolProfile

type ExtensionProfile added in v0.6.0

type ExtensionProfile struct {
	Name                           string             `json:"name"`
	Version                        string             `json:"version"`
	ExtensionParameters            string             `json:"extensionParameters,omitempty"`
	ExtensionParametersKeyVaultRef *KeyvaultSecretRef `json:"parametersKeyvaultSecretRef,omitempty"`
	RootURL                        string             `json:"rootURL,omitempty"`
	// This is only needed for preprovision extensions and it needs to be a bash script
	Script   string `json:"script,omitempty"`
	URLQuery string `json:"urlQuery,omitempty"`
}

ExtensionProfile represents an extension definition

type HostedMasterProfile added in v0.6.0

type HostedMasterProfile struct {
	// Master public endpoint/FQDN with port
	// The format will be FQDN:2376
	// Not used during PUT, returned as part of GETFQDN
	FQDN      string `json:"fqdn,omitempty"`
	DNSPrefix string `json:"dnsPrefix"`
	// Subnet holds the CIDR which defines the Azure Subnet in which
	// Agents will be provisioned. This is stored on the HostedMasterProfile
	// and will become `masterSubnet` in the compiled template.
	Subnet string `json:"subnet"`
	// ApiServerWhiteListRange is a comma delimited CIDR which is whitelisted to AKS
	APIServerWhiteListRange *string `json:"apiServerWhiteListRange"`
}

HostedMasterProfile defines properties for a hosted master

type ImageReference added in v0.16.0

type ImageReference struct {
	Name          string `json:"name,omitempty"`
	ResourceGroup string `json:"resourceGroup,omitempty"`
}

ImageReference represents a reference to an Image resource in Azure.

type JumpboxProfile

type JumpboxProfile struct {
	OSType    OSType `json:"osType"`
	DNSPrefix string `json:"dnsPrefix"`

	// Jumpbox public endpoint/FQDN with port
	// The format will be FQDN:2376
	// Not used during PUT, returned as part of GET
	FQDN string `json:"fqdn,omitempty"`
}

JumpboxProfile describes properties of the jumpbox setup in the ACS container cluster.

type KeyVaultCertificate

type KeyVaultCertificate struct {
	CertificateURL   string `json:"certificateUrl,omitempty"`
	CertificateStore string `json:"certificateStore,omitempty"`
}

KeyVaultCertificate specifies a certificate to install On Linux, the certificate file is placed under the /var/lib/waagent directory with the file name <UppercaseThumbprint>.crt for the X509 certificate file and <UppercaseThumbprint>.prv for the private key. Both of these files are .pem formatted. On windows the certificate will be saved in the specified store.

type KeyVaultID

type KeyVaultID struct {
	ID string `json:"id,omitempty"`
}

KeyVaultID specifies a key vault

type KeyVaultSecrets

type KeyVaultSecrets struct {
	SourceVault       *KeyVaultID           `json:"sourceVault,omitempty"`
	VaultCertificates []KeyVaultCertificate `json:"vaultCertificates,omitempty"`
}

KeyVaultSecrets specifies certificates to install on the pool of machines from a given key vault the key vault specified must have been granted read permissions to CRP

type KeyvaultSecretRef added in v0.6.0

type KeyvaultSecretRef struct {
	VaultID       string `json:"vaultID"`
	SecretName    string `json:"secretName"`
	SecretVersion string `json:"version,omitempty"`
}

KeyvaultSecretRef specifies path to the Azure keyvault along with secret name and (optionaly) version for Service Principal's secret

type KubernetesAddon added in v0.9.4

type KubernetesAddon struct {
	Name       string                    `json:"name,omitempty"`
	Enabled    *bool                     `json:"enabled,omitempty"`
	Containers []KubernetesContainerSpec `json:"containers,omitempty"`
	Config     map[string]string         `json:"config,omitempty"`
	Data       string                    `json:"data,omitempty"`
}

KubernetesAddon defines a list of addons w/ configuration to include with the cluster deployment

func (KubernetesAddon) GetAddonContainersIndexByName added in v0.23.0

func (a KubernetesAddon) GetAddonContainersIndexByName(containerName string) int

GetAddonContainersIndexByName returns the KubernetesAddon containers index with the name `containerName`

func (*KubernetesAddon) IsEnabled added in v0.9.4

func (a *KubernetesAddon) IsEnabled(ifNil bool) bool

IsEnabled returns if the addon is explicitly enabled, or the user-provided default if non explicitly enabled

type KubernetesConfig

type KubernetesConfig struct {
	KubernetesImageBase              string            `json:"kubernetesImageBase,omitempty"`
	ClusterSubnet                    string            `json:"clusterSubnet,omitempty"`
	NetworkPolicy                    string            `json:"networkPolicy,omitempty"`
	NetworkPlugin                    string            `json:"networkPlugin,omitempty"`
	ContainerRuntime                 string            `json:"containerRuntime,omitempty"`
	MaxPods                          int               `json:"maxPods,omitempty"`
	DockerBridgeSubnet               string            `json:"dockerBridgeSubnet,omitempty"`
	DNSServiceIP                     string            `json:"dnsServiceIP,omitempty"`
	ServiceCIDR                      string            `json:"serviceCidr,omitempty"`
	UseManagedIdentity               bool              `json:"useManagedIdentity,omitempty"`
	UserAssignedID                   string            `json:"userAssignedID,omitempty"`
	UserAssignedClientID             string            `json:"userAssignedClientID,omitempty"` //Note: cannot be provided in config. Used *only* for transferring this to azure.json.
	CustomHyperkubeImage             string            `json:"customHyperkubeImage,omitempty"`
	DockerEngineVersion              string            `json:"dockerEngineVersion,omitempty"`
	CustomCcmImage                   string            `json:"customCcmImage,omitempty"` // Image for cloud-controller-manager
	UseCloudControllerManager        *bool             `json:"useCloudControllerManager,omitempty"`
	CustomWindowsPackageURL          string            `json:"customWindowsPackageURL,omitempty"`
	UseInstanceMetadata              *bool             `json:"useInstanceMetadata,omitempty"`
	EnableRbac                       *bool             `json:"enableRbac,omitempty"`
	EnableSecureKubelet              *bool             `json:"enableSecureKubelet,omitempty"`
	EnableAggregatedAPIs             bool              `json:"enableAggregatedAPIs,omitempty"`
	PrivateCluster                   *PrivateCluster   `json:"privateCluster,omitempty"`
	GCHighThreshold                  int               `json:"gchighthreshold,omitempty"`
	GCLowThreshold                   int               `json:"gclowthreshold,omitempty"`
	EtcdVersion                      string            `json:"etcdVersion,omitempty"`
	EtcdDiskSizeGB                   string            `json:"etcdDiskSizeGB,omitempty"`
	EtcdEncryptionKey                string            `json:"etcdEncryptionKey,omitempty"`
	EnableDataEncryptionAtRest       *bool             `json:"enableDataEncryptionAtRest,omitempty"`
	EnableEncryptionWithExternalKms  *bool             `json:"enableEncryptionWithExternalKms,omitempty"`
	EnablePodSecurityPolicy          *bool             `json:"enablePodSecurityPolicy,omitempty"`
	Addons                           []KubernetesAddon `json:"addons,omitempty"`
	KubeletConfig                    map[string]string `json:"kubeletConfig,omitempty"`
	ControllerManagerConfig          map[string]string `json:"controllerManagerConfig,omitempty"`
	CloudControllerManagerConfig     map[string]string `json:"cloudControllerManagerConfig,omitempty"`
	APIServerConfig                  map[string]string `json:"apiServerConfig,omitempty"`
	SchedulerConfig                  map[string]string `json:"schedulerConfig,omitempty"`
	CloudProviderBackoff             *bool             `json:"cloudProviderBackoff,omitempty"`
	CloudProviderBackoffRetries      int               `json:"cloudProviderBackoffRetries,omitempty"`
	CloudProviderBackoffJitter       float64           `json:"cloudProviderBackoffJitter,omitempty"`
	CloudProviderBackoffDuration     int               `json:"cloudProviderBackoffDuration,omitempty"`
	CloudProviderBackoffExponent     float64           `json:"cloudProviderBackoffExponent,omitempty"`
	CloudProviderRateLimit           *bool             `json:"cloudProviderRateLimit,omitempty"`
	CloudProviderRateLimitQPS        float64           `json:"cloudProviderRateLimitQPS,omitempty"`
	CloudProviderRateLimitBucket     int               `json:"cloudProviderRateLimitBucket,omitempty"`
	NonMasqueradeCidr                string            `json:"nonMasqueradeCidr,omitempty"`
	NodeStatusUpdateFrequency        string            `json:"nodeStatusUpdateFrequency,omitempty"`
	HardEvictionThreshold            string            `json:"hardEvictionThreshold,omitempty"`
	CtrlMgrNodeMonitorGracePeriod    string            `json:"ctrlMgrNodeMonitorGracePeriod,omitempty"`
	CtrlMgrPodEvictionTimeout        string            `json:"ctrlMgrPodEvictionTimeout,omitempty"`
	CtrlMgrRouteReconciliationPeriod string            `json:"ctrlMgrRouteReconciliationPeriod,omitempty"`
	LoadBalancerSku                  string            `json:"loadBalancerSku,omitempty"`
	ExcludeMasterFromStandardLB      *bool             `json:"excludeMasterFromStandardLB,omitempty"`
	AzureCNIVersion                  string            `json:"azureCNIVersion,omitempty"`
}

KubernetesConfig contains the Kubernetes config structure, containing Kubernetes specific configuration

func (*KubernetesConfig) GetAddonByName added in v0.23.0

func (k *KubernetesConfig) GetAddonByName(addonName string) KubernetesAddon

GetAddonByName returns the KubernetesAddon instance with name `addonName`

func (*KubernetesConfig) GetAddonScript added in v0.22.0

func (k *KubernetesConfig) GetAddonScript(addonName string) string

GetAddonScript retrieves the raw script data specified as input for the k8s addon with name "addonName".

func (*KubernetesConfig) IsAADPodIdentityEnabled added in v0.21.0

func (k *KubernetesConfig) IsAADPodIdentityEnabled() bool

IsAADPodIdentityEnabled checks if the tiller addon is enabled

func (*KubernetesConfig) IsACIConnectorEnabled added in v0.10.0

func (k *KubernetesConfig) IsACIConnectorEnabled() bool

IsACIConnectorEnabled checks if the ACI Connector addon is enabled

func (*KubernetesConfig) IsBlobfuseFlexVolumeEnabled added in v0.21.0

func (k *KubernetesConfig) IsBlobfuseFlexVolumeEnabled() bool

IsBlobfuseFlexVolumeEnabled checks if the Blobfuse FlexVolume addon is enabled

func (*KubernetesConfig) IsClusterAutoscalerEnabled added in v0.17.0

func (k *KubernetesConfig) IsClusterAutoscalerEnabled() bool

IsClusterAutoscalerEnabled checks if the cluster autoscaler addon is enabled

func (*KubernetesConfig) IsContainerMonitoringEnabled added in v0.21.0

func (k *KubernetesConfig) IsContainerMonitoringEnabled() bool

IsContainerMonitoringEnabled checks if the container monitoring addon is enabled

func (*KubernetesConfig) IsDashboardEnabled added in v0.9.4

func (k *KubernetesConfig) IsDashboardEnabled() bool

IsDashboardEnabled checks if the kubernetes-dashboard addon is enabled

func (*KubernetesConfig) IsIPMasqAgentEnabled added in v0.23.0

func (k *KubernetesConfig) IsIPMasqAgentEnabled() bool

IsIPMasqAgentEnabled checks if the ip-masq-agent addon is enabled

func (*KubernetesConfig) IsKeyVaultFlexVolumeEnabled added in v0.20.0

func (k *KubernetesConfig) IsKeyVaultFlexVolumeEnabled() bool

IsKeyVaultFlexVolumeEnabled checks if the Key Vault FlexVolume addon is enabled

func (*KubernetesConfig) IsReschedulerEnabled added in v0.10.0

func (k *KubernetesConfig) IsReschedulerEnabled() bool

IsReschedulerEnabled checks if the rescheduler addon is enabled

func (*KubernetesConfig) IsSMBFlexVolumeEnabled added in v0.21.0

func (k *KubernetesConfig) IsSMBFlexVolumeEnabled() bool

IsSMBFlexVolumeEnabled checks if the SMB FlexVolume addon is enabled

func (*KubernetesConfig) IsTillerEnabled added in v0.9.4

func (k *KubernetesConfig) IsTillerEnabled() bool

IsTillerEnabled checks if the tiller addon is enabled

func (*KubernetesConfig) PrivateJumpboxProvision added in v0.14.0

func (k *KubernetesConfig) PrivateJumpboxProvision() bool

PrivateJumpboxProvision checks if a private cluster has jumpbox auto-provisioning

func (*KubernetesConfig) RequiresDocker added in v0.19.0

func (k *KubernetesConfig) RequiresDocker() bool

RequiresDocker returns if the kubernetes settings require docker to be installed.

func (*KubernetesConfig) SetCloudProviderBackoffDefaults added in v0.22.2

func (k *KubernetesConfig) SetCloudProviderBackoffDefaults()

SetCloudProviderBackoffDefaults sets default cloudprovider backoff config

func (*KubernetesConfig) SetCloudProviderRateLimitDefaults added in v0.22.2

func (k *KubernetesConfig) SetCloudProviderRateLimitDefaults()

SetCloudProviderRateLimitDefaults sets default cloudprovider rate limiter config

type KubernetesConfigDeprecated added in v0.12.0

type KubernetesConfigDeprecated struct {
	NonMasqueradeCidr                string `json:"nonMasqueradeCidr,omitempty"`
	NodeStatusUpdateFrequency        string `json:"nodeStatusUpdateFrequency,omitempty"`
	HardEvictionThreshold            string `json:"hardEvictionThreshold,omitempty"`
	CtrlMgrNodeMonitorGracePeriod    string `json:"ctrlMgrNodeMonitorGracePeriod,omitempty"`
	CtrlMgrPodEvictionTimeout        string `json:"ctrlMgrPodEvictionTimeout,omitempty"`
	CtrlMgrRouteReconciliationPeriod string `json:"ctrlMgrRouteReconciliationPeriod,omitempty"`
}

KubernetesConfigDeprecated are properties that are no longer operable and will be ignored TODO use this when strict JSON checking accommodates struct embedding

type KubernetesContainerSpec added in v0.9.4

type KubernetesContainerSpec struct {
	Name           string `json:"name,omitempty"`
	Image          string `json:"image,omitempty"`
	CPURequests    string `json:"cpuRequests,omitempty"`
	MemoryRequests string `json:"memoryRequests,omitempty"`
	CPULimits      string `json:"cpuLimits,omitempty"`
	MemoryLimits   string `json:"memoryLimits,omitempty"`
}

KubernetesContainerSpec defines configuration for a container spec

type KubernetesSpecConfig added in v0.23.0

type KubernetesSpecConfig struct {
	KubernetesImageBase              string
	TillerImageBase                  string
	ACIConnectorImageBase            string
	NVIDIAImageBase                  string
	AzureCNIImageBase                string
	EtcdDownloadURLBase              string
	KubeBinariesSASURLBase           string
	WindowsPackageSASURLBase         string
	WindowsTelemetryGUID             string
	CNIPluginsDownloadURL            string
	VnetCNILinuxPluginsDownloadURL   string
	VnetCNIWindowsPluginsDownloadURL string
	ContainerdDownloadURLBase        string
}

KubernetesSpecConfig is the kubernetes container images used.

type LinuxProfile

type LinuxProfile struct {
	AdminUsername string `json:"adminUsername"`
	SSH           struct {
		PublicKeys []PublicKey `json:"publicKeys"`
	} `json:"ssh"`
	Secrets               []KeyVaultSecrets   `json:"secrets,omitempty"`
	Distro                Distro              `json:"distro,omitempty"`
	ScriptRootURL         string              `json:"scriptroot,omitempty"`
	CustomSearchDomain    *CustomSearchDomain `json:"customSearchDomain,omitempty"`
	CustomNodesDNS        *CustomNodesDNS     `json:"CustomNodesDNS,omitempty"`
	IsSSHKeyAutoGenerated *bool               `json:"isSSHKeyAutoGenerated,omitempty"`
}

LinuxProfile represents the linux parameters passed to the cluster

func (*LinuxProfile) HasCustomNodesDNS added in v0.18.0

func (l *LinuxProfile) HasCustomNodesDNS() bool

HasCustomNodesDNS returns true if the customer specified a dns server

func (*LinuxProfile) HasSearchDomain added in v0.18.0

func (l *LinuxProfile) HasSearchDomain() bool

HasSearchDomain returns true if the customer specified secrets to install

func (*LinuxProfile) HasSecrets

func (l *LinuxProfile) HasSecrets() bool

HasSecrets returns true if the customer specified secrets to install

type MasterProfile

type MasterProfile struct {
	Count                    int               `json:"count"`
	DNSPrefix                string            `json:"dnsPrefix"`
	SubjectAltNames          []string          `json:"subjectAltNames"`
	VMSize                   string            `json:"vmSize"`
	OSDiskSizeGB             int               `json:"osDiskSizeGB,omitempty"`
	VnetSubnetID             string            `json:"vnetSubnetID,omitempty"`
	VnetCidr                 string            `json:"vnetCidr,omitempty"`
	AgentVnetSubnetID        string            `json:"agentVnetSubnetID,omitempty"`
	FirstConsecutiveStaticIP string            `json:"firstConsecutiveStaticIP,omitempty"`
	Subnet                   string            `json:"subnet"`
	IPAddressCount           int               `json:"ipAddressCount,omitempty"`
	StorageProfile           string            `json:"storageProfile,omitempty"`
	HTTPSourceAddressPrefix  string            `json:"HTTPSourceAddressPrefix,omitempty"`
	OAuthEnabled             bool              `json:"oauthEnabled"`
	PreprovisionExtension    *Extension        `json:"preProvisionExtension"`
	Extensions               []Extension       `json:"extensions"`
	Distro                   Distro            `json:"distro,omitempty"`
	KubernetesConfig         *KubernetesConfig `json:"kubernetesConfig,omitempty"`
	ImageRef                 *ImageReference   `json:"imageReference,omitempty"`
	CustomFiles              *[]CustomFile     `json:"customFiles,omitempty"`
	AvailabilityProfile      string            `json:"availabilityProfile"`
	AgentSubnet              string            `json:"agentSubnet,omitempty"`
	AvailabilityZones        []string          `json:"availabilityZones,omitempty"`
	SinglePlacementGroup     *bool             `json:"singlePlacementGroup,omitempty"`

	// Master LB public endpoint/FQDN with port
	// The format will be FQDN:2376
	// Not used during PUT, returned as part of GET
	FQDN string `json:"fqdn,omitempty"`
}

MasterProfile represents the definition of the master cluster

func (*MasterProfile) GetFirstConsecutiveStaticIPAddress added in v0.23.0

func (m *MasterProfile) GetFirstConsecutiveStaticIPAddress(subnetStr string) string

GetFirstConsecutiveStaticIPAddress returns the first static IP address of the given subnet.

func (*MasterProfile) HasAvailabilityZones added in v0.23.0

func (m *MasterProfile) HasAvailabilityZones() bool

HasAvailabilityZones returns true if the master profile has availability zones

func (*MasterProfile) IsCoreOS added in v0.10.0

func (m *MasterProfile) IsCoreOS() bool

IsCoreOS returns true if the master specified a CoreOS distro

func (*MasterProfile) IsCustomVNET

func (m *MasterProfile) IsCustomVNET() bool

IsCustomVNET returns true if the customer brought their own VNET

func (*MasterProfile) IsManagedDisks added in v0.2.0

func (m *MasterProfile) IsManagedDisks() bool

IsManagedDisks returns true if the master specified managed disks

func (*MasterProfile) IsRHEL added in v0.7.0

func (m *MasterProfile) IsRHEL() bool

IsRHEL returns true if the master specified a RHEL distro

func (*MasterProfile) IsStorageAccount added in v0.2.0

func (m *MasterProfile) IsStorageAccount() bool

IsStorageAccount returns true if the master specified storage account

func (*MasterProfile) IsVirtualMachineScaleSets added in v0.23.0

func (m *MasterProfile) IsVirtualMachineScaleSets() bool

IsVirtualMachineScaleSets returns true if the master availability profile is VMSS

type OSType

type OSType string

OSType represents OS types of agents

const (
	Windows OSType = "Windows"
	Linux   OSType = "Linux"
)

the OSTypes supported by vlabs

type OpenShiftConfig added in v0.17.0

type OpenShiftConfig struct {
	KubernetesConfig *KubernetesConfig `json:"kubernetesConfig,omitempty"`

	// ClusterUsername and ClusterPassword are temporary, do not rely on them.
	ClusterUsername string `json:"clusterUsername,omitempty"`
	ClusterPassword string `json:"clusterPassword,omitempty"`

	// EnableAADAuthentication is temporary, do not rely on it.
	EnableAADAuthentication bool `json:"enableAADAuthentication,omitempty"`

	ConfigBundles map[string][]byte `json:"configBundles,omitempty"`

	PublicHostname string
	RouterProfiles []OpenShiftRouterProfile
}

OpenShiftConfig holds configuration for OpenShift

type OpenShiftRouterProfile added in v0.21.0

type OpenShiftRouterProfile struct {
	Name            string
	PublicSubdomain string
	FQDN            string
}

OpenShiftRouterProfile represents an OpenShift router.

type OrchestratorProfile

type OrchestratorProfile struct {
	OrchestratorType    string            `json:"orchestratorType"`
	OrchestratorVersion string            `json:"orchestratorVersion"`
	KubernetesConfig    *KubernetesConfig `json:"kubernetesConfig,omitempty"`
	OpenShiftConfig     *OpenShiftConfig  `json:"openshiftConfig,omitempty"`
	DcosConfig          *DcosConfig       `json:"dcosConfig,omitempty"`
}

OrchestratorProfile contains Orchestrator properties

func (*OrchestratorProfile) GetAPIServerEtcdAPIVersion added in v0.9.0

func (o *OrchestratorProfile) GetAPIServerEtcdAPIVersion() string

GetAPIServerEtcdAPIVersion Used to set apiserver's etcdapi version

func (*OrchestratorProfile) IsAzureCNI added in v0.10.0

func (o *OrchestratorProfile) IsAzureCNI() bool

IsAzureCNI returns true if Azure CNI network plugin is enabled

func (*OrchestratorProfile) IsDCOS added in v0.2.0

func (o *OrchestratorProfile) IsDCOS() bool

IsDCOS returns true if this template is for DCOS orchestrator

func (*OrchestratorProfile) IsKubernetes

func (o *OrchestratorProfile) IsKubernetes() bool

IsKubernetes returns true if this template is for Kubernetes orchestrator

func (*OrchestratorProfile) IsMetricsServerEnabled added in v0.14.0

func (o *OrchestratorProfile) IsMetricsServerEnabled() bool

IsMetricsServerEnabled checks if the metrics server addon is enabled

func (*OrchestratorProfile) IsOpenShift added in v0.17.0

func (o *OrchestratorProfile) IsOpenShift() bool

IsOpenShift returns true if this template is for OpenShift orchestrator

func (*OrchestratorProfile) IsSwarmMode

func (o *OrchestratorProfile) IsSwarmMode() bool

IsSwarmMode returns true if this template is for Swarm Mode orchestrator

func (*OrchestratorProfile) RequireRouteTable added in v0.17.0

func (o *OrchestratorProfile) RequireRouteTable() bool

RequireRouteTable returns true if this deployment requires routing table

type OrchestratorVersionProfile added in v0.6.0

type OrchestratorVersionProfile struct {
	// Orchestrator type and version
	OrchestratorProfile
	// Whether this orchestrator version is deployed by default if orchestrator release is not specified
	Default bool `json:"default,omitempty"`
	// List of available upgrades for this orchestrator version
	Upgrades []*OrchestratorProfile `json:"upgrades,omitempty"`
}

OrchestratorVersionProfile contains information of a supported orchestrator version:

func GetOrchestratorVersionProfile added in v0.7.0

func GetOrchestratorVersionProfile(orch *OrchestratorProfile, hasWindows bool) (*OrchestratorVersionProfile, error)

GetOrchestratorVersionProfile returns orchestrator info for upgradable container service

type PrivateCluster added in v0.14.0

type PrivateCluster struct {
	Enabled        *bool                  `json:"enabled,omitempty"`
	JumpboxProfile *PrivateJumpboxProfile `json:"jumpboxProfile,omitempty"`
}

PrivateCluster defines the configuration for a private cluster

type PrivateJumpboxProfile added in v0.14.0

type PrivateJumpboxProfile struct {
	Name           string `json:"name" validate:"required"`
	VMSize         string `json:"vmSize" validate:"required"`
	OSDiskSizeGB   int    `json:"osDiskSizeGB,omitempty" validate:"min=0,max=1023"`
	Username       string `json:"username,omitempty"`
	PublicKey      string `json:"publicKey" validate:"required"`
	StorageProfile string `json:"storageProfile,omitempty"`
}

PrivateJumpboxProfile represents a jumpbox definition

type Properties

type Properties struct {
	ClusterID               string
	ProvisioningState       ProvisioningState        `json:"provisioningState,omitempty"`
	OrchestratorProfile     *OrchestratorProfile     `json:"orchestratorProfile,omitempty"`
	MasterProfile           *MasterProfile           `json:"masterProfile,omitempty"`
	AgentPoolProfiles       []*AgentPoolProfile      `json:"agentPoolProfiles,omitempty"`
	LinuxProfile            *LinuxProfile            `json:"linuxProfile,omitempty"`
	WindowsProfile          *WindowsProfile          `json:"windowsProfile,omitempty"`
	ExtensionProfiles       []*ExtensionProfile      `json:"extensionProfiles"`
	DiagnosticsProfile      *DiagnosticsProfile      `json:"diagnosticsProfile,omitempty"`
	JumpboxProfile          *JumpboxProfile          `json:"jumpboxProfile,omitempty"`
	ServicePrincipalProfile *ServicePrincipalProfile `json:"servicePrincipalProfile,omitempty"`
	CertificateProfile      *CertificateProfile      `json:"certificateProfile,omitempty"`
	AADProfile              *AADProfile              `json:"aadProfile,omitempty"`
	CustomProfile           *CustomProfile           `json:"customProfile,omitempty"`
	HostedMasterProfile     *HostedMasterProfile     `json:"hostedMasterProfile,omitempty"`
	AddonProfiles           map[string]AddonProfile  `json:"addonProfiles,omitempty"`
	AzProfile               *AzProfile               `json:"azProfile,omitempty"`
}

Properties represents the ACS cluster definition

func (*Properties) AreAgentProfilesCustomVNET added in v0.23.0

func (p *Properties) AreAgentProfilesCustomVNET() bool

AreAgentProfilesCustomVNET returns true if all of the agent profiles in the clusters are configured with VNET.

func (*Properties) GetAgentVMPrefix added in v0.23.0

func (p *Properties) GetAgentVMPrefix(a *AgentPoolProfile) string

GetAgentVMPrefix returns the VM prefix for an agentpool

func (*Properties) GetClusterID added in v0.23.0

func (p *Properties) GetClusterID() string

GetClusterID creates a unique 8 string cluster ID.

func (*Properties) GetClusterMetadata added in v0.23.0

func (p *Properties) GetClusterMetadata() *ClusterMetadata

GetClusterMetadata returns a instance of the struct type api.ClusterMetadata.

func (*Properties) GetMasterVMPrefix added in v0.23.0

func (p *Properties) GetMasterVMPrefix() string

GetMasterVMPrefix returns the prefix of master VMs

func (*Properties) GetNSGName added in v0.23.0

func (p *Properties) GetNSGName() string

GetNSGName returns the name of the network security group of the cluster.

func (*Properties) GetPrimaryAvailabilitySetName added in v0.23.0

func (p *Properties) GetPrimaryAvailabilitySetName() string

GetPrimaryAvailabilitySetName returns the name of the primary availability set of the cluster

func (*Properties) GetPrimaryScaleSetName added in v0.23.0

func (p *Properties) GetPrimaryScaleSetName() string

GetPrimaryScaleSetName returns the name of the primary scale set node of the cluster

func (*Properties) GetResourcePrefix added in v0.23.0

func (p *Properties) GetResourcePrefix() string

GetResourcePrefix returns the prefix to use for naming cluster resources

func (*Properties) GetRouteTableName added in v0.23.0

func (p *Properties) GetRouteTableName() string

GetRouteTableName returns the route table name of the cluster.

func (*Properties) GetSubnetName added in v0.23.0

func (p *Properties) GetSubnetName() string

GetSubnetName returns the subnet name of the cluster based on its current configuration.

func (*Properties) GetVNetResourceGroupName added in v0.23.0

func (p *Properties) GetVNetResourceGroupName() string

GetVNetResourceGroupName returns the virtual network resource group name of the cluster

func (*Properties) GetVirtualNetworkName added in v0.23.0

func (p *Properties) GetVirtualNetworkName() string

GetVirtualNetworkName returns the virtual network name of the cluster

func (*Properties) HasAadProfile added in v0.6.0

func (p *Properties) HasAadProfile() bool

HasAadProfile returns true if the has aad profile

func (*Properties) HasAvailabilityZones added in v0.23.0

func (p *Properties) HasAvailabilityZones() bool

HasAvailabilityZones returns true if the cluster contains a profile with zones

func (*Properties) HasManagedDisks

func (p *Properties) HasManagedDisks() bool

HasManagedDisks returns true if the cluster contains Managed Disks

func (*Properties) HasStorageAccountDisks added in v0.2.0

func (p *Properties) HasStorageAccountDisks() bool

HasStorageAccountDisks returns true if the cluster contains Storage Account Disks

func (*Properties) HasVMSSAgentPool added in v0.23.0

func (p *Properties) HasVMSSAgentPool() bool

HasVMSSAgentPool returns true if the cluster contains Virtual Machine Scale Sets agent pools

func (*Properties) HasWindows

func (p *Properties) HasWindows() bool

HasWindows returns true if the cluster contains windows

func (*Properties) HasZonesForAllAgentPools added in v0.23.0

func (p *Properties) HasZonesForAllAgentPools() bool

HasZonesForAllAgentPools returns true if all of the agent pools have zones

func (*Properties) IsHostedMasterProfile added in v0.23.0

func (p *Properties) IsHostedMasterProfile() bool

IsHostedMasterProfile returns true if the cluster has a hosted master

func (*Properties) IsNVIDIADevicePluginEnabled added in v0.18.0

func (p *Properties) IsNVIDIADevicePluginEnabled() bool

IsNVIDIADevicePluginEnabled checks if the NVIDIA Device Plugin addon is enabled It is enabled by default if agents contain a GPU and Kubernetes version is >= 1.10.0

func (*Properties) K8sOrchestratorName added in v0.23.0

func (p *Properties) K8sOrchestratorName() string

K8sOrchestratorName returns the 3 character orchestrator code for kubernetes-based clusters.

func (*Properties) TotalNodes added in v0.15.0

func (p *Properties) TotalNodes() int

TotalNodes returns the total number of nodes in the cluster configuration

type ProvisioningState

type ProvisioningState string

ProvisioningState represents the current state of container service resource.

const (
	// Creating means ContainerService resource is being created.
	Creating ProvisioningState = "Creating"
	// Updating means an existing ContainerService resource is being updated
	Updating ProvisioningState = "Updating"
	// Failed means resource is in failed state
	Failed ProvisioningState = "Failed"
	// Succeeded means resource created succeeded during last create/update
	Succeeded ProvisioningState = "Succeeded"
	// Deleting means resource is in the process of being deleted
	Deleting ProvisioningState = "Deleting"
	// Migrating means resource is being migrated from one subscription or
	// resource group to another
	Migrating ProvisioningState = "Migrating"
	// Upgrading means an existing ContainerService resource is being upgraded
	Upgrading ProvisioningState = "Upgrading"
)

type PublicKey added in v0.4.0

type PublicKey struct {
	KeyData string `json:"keyData"`
}

PublicKey represents an SSH key for LinuxProfile

type ResourcePurchasePlan

type ResourcePurchasePlan struct {
	Name          string `json:"name"`
	Product       string `json:"product"`
	PromotionCode string `json:"promotionCode"`
	Publisher     string `json:"publisher"`
}

ResourcePurchasePlan defines resource plan as required by ARM for billing purposes.

type ServicePrincipalProfile

type ServicePrincipalProfile struct {
	ClientID          string             `json:"clientId"`
	Secret            string             `json:"secret,omitempty" conform:"redact"`
	ObjectID          string             `json:"objectId,omitempty"`
	KeyvaultSecretRef *KeyvaultSecretRef `json:"keyvaultSecretRef,omitempty"`
}

ServicePrincipalProfile contains the client and secret used by the cluster for Azure Resource CRUD

type TypeMeta

type TypeMeta struct {
	// APIVersion is on every object
	APIVersion string `json:"apiVersion"`
}

TypeMeta describes an individual API model object

func LoadDefaultContainerServiceProperties added in v0.21.0

func LoadDefaultContainerServiceProperties() (TypeMeta, *vlabs.Properties)

LoadDefaultContainerServiceProperties loads the default API model

type V20160330ARMContainerService

type V20160330ARMContainerService struct {
	TypeMeta
	*v20160330.ContainerService
}

V20160330ARMContainerService is the type we read and write from file needed because the json that is sent to ARM and acs-engine is different from the json that the ACS RP Api gets from ARM

type V20160930ARMContainerService

type V20160930ARMContainerService struct {
	TypeMeta
	*v20160930.ContainerService
}

V20160930ARMContainerService is the type we read and write from file needed because the json that is sent to ARM and acs-engine is different from the json that the ACS RP Api gets from ARM

type V20170131ARMContainerService

type V20170131ARMContainerService struct {
	TypeMeta
	*v20170131.ContainerService
}

V20170131ARMContainerService is the type we read and write from file needed because the json that is sent to ARM and acs-engine is different from the json that the ACS RP Api gets from ARM

type V20170701ARMContainerService added in v0.2.0

type V20170701ARMContainerService struct {
	TypeMeta
	*v20170701.ContainerService
}

V20170701ARMContainerService is the type we read and write from file needed because the json that is sent to ARM and acs-engine is different from the json that the ACS RP Api gets from ARM

type V20170831ARMManagedContainerService added in v0.6.0

type V20170831ARMManagedContainerService struct {
	TypeMeta
	*v20170831.ManagedCluster
}

V20170831ARMManagedContainerService is the type we read and write from file needed because the json that is sent to ARM and acs-engine is different from the json that the ACS RP Api gets from ARM

type V20180331ARMManagedContainerService added in v0.14.1

type V20180331ARMManagedContainerService struct {
	TypeMeta
	*v20180331.ManagedCluster
}

V20180331ARMManagedContainerService is the type we read and write from file needed because the json that is sent to ARM and acs-engine is different from the json that the ACS RP Api gets from ARM

type VMDiagnostics

type VMDiagnostics struct {
	Enabled bool `json:"enabled"`

	// Specifies storage account Uri where Boot Diagnostics (CRP &
	// VMSS BootDiagostics) and VM Diagnostics logs (using Linux
	// Diagnostics Extension) will be stored. Uri will be of standard
	// blob domain. i.e. https://storageaccount.blob.core.windows.net/
	// This field is readonly as ACS RP will create a storage account
	// for the customer.
	StorageURL *neturl.URL `json:"storageUrl"`
}

VMDiagnostics contains settings to on/off boot diagnostics collection in RD Host

type VlabsARMContainerService

type VlabsARMContainerService struct {
	TypeMeta
	*vlabs.ContainerService
}

VlabsARMContainerService is the type we read and write from file needed because the json that is sent to ARM and acs-engine is different from the json that the ACS RP Api gets from ARM

type WindowsProfile

type WindowsProfile struct {
	AdminUsername         string            `json:"adminUsername"`
	AdminPassword         string            `json:"adminPassword" conform:"redact"`
	ImageVersion          string            `json:"imageVersion"`
	WindowsImageSourceURL string            `json:"windowsImageSourceURL"`
	WindowsPublisher      string            `json:"windowsPublisher"`
	WindowsOffer          string            `json:"windowsOffer"`
	WindowsSku            string            `json:"windowsSku"`
	Secrets               []KeyVaultSecrets `json:"secrets,omitempty"`
}

WindowsProfile represents the windows parameters passed to the cluster

func (*WindowsProfile) HasCustomImage added in v0.12.0

func (w *WindowsProfile) HasCustomImage() bool

HasCustomImage returns true if there is a custom windows os image url specified

func (*WindowsProfile) HasSecrets

func (w *WindowsProfile) HasSecrets() bool

HasSecrets returns true if the customer specified secrets to install

Directories

Path Synopsis
agentPoolOnlyApi
v20170831
Package v20170831 stores api model for version "2017-08-31"
Package v20170831 stores api model for version "2017-08-31"
v20180331
Package v20180331 stores api model for version "2018-03-31"
Package v20180331 stores api model for version "2018-03-31"
vlabs
Package vlabs stores api model for version "2017-08-31"
Package vlabs stores api model for version "2017-08-31"
osa
Package v20160330 stores the api model for version "2016-03-30"
Package v20160330 stores the api model for version "2016-03-30"
Package v20160930 stores api model for version "2016-09-30"
Package v20160930 stores api model for version "2016-09-30"
Package v20170131 stores api model for version "2017-01-31"
Package v20170131 stores api model for version "2017-01-31"
Package v20170701 stores api model for version "2017-07-01"
Package v20170701 stores api model for version "2017-07-01"
Package vlabs stores an experimental api model for acs
Package vlabs stores an experimental api model for acs

Jump to

Keyboard shortcuts

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