Documentation ¶
Overview ¶
Package acsengine takes an ACS cluster model and generates the corresponding template
Index ¶
- Constants
- Variables
- func CreateMockContainerService(containerServiceName, orchestratorVersion string, masterCount, agentCount int, ...) *api.ContainerService
- func CreatePki(extraFQDNs []string, extraIPs []net.IP, clusterDomain string, ...) (*PkiKeyCertPair, *PkiKeyCertPair, *PkiKeyCertPair, *PkiKeyCertPair, ...)
- func CreateSaveSSH(username, outputDirectory string, s *i18n.Translator) (privateKey *rsa.PrivateKey, publicKeyString string, err error)
- func FormatAzureProdFQDN(fqdnPrefix string, location string) string
- func GenerateClusterID(properties *api.Properties) string
- func GenerateKubeConfig(properties *api.Properties, location string) (string, error)
- func GetClassicAllowedSizes() string
- func GetClassicSizeMap() string
- func GetDCOSMasterAllowedSizes() string
- func GetKubernetesAgentAllowedSizes() string
- func GetMasterAgentAllowedSizes() string
- func GetSizeMap() string
- func GetTenantID(resourceManagerEndpoint string, subscriptionID string) (string, error)
- type ArtifactWriter
- type AzureEndpointConfig
- type AzureEnvironmentSpecConfig
- type AzureOSImageConfig
- type Context
- type CustomFileReader
- type DCOSNodeType
- type DCOSSpecConfig
- type DockerSpecConfig
- type FileSaver
- type KeyVaultID
- type KeyVaultRef
- type KubernetesSpecConfig
- type PkiKeyCertPair
- type TemplateGenerator
- type V20160330ContainerService
- type VlabsContainerService
Constants ¶
const ( // DefaultOpenShiftMasterSubnet is the default value for master subnet for Openshift. DefaultOpenShiftMasterSubnet = "10.0.0.0/24" // DefaultOpenShiftFirstConsecutiveStaticIP is the default static ip address for master 0 for Openshift. DefaultOpenShiftFirstConsecutiveStaticIP = "10.0.0.11" // DefaultMasterSubnet specifies the default master subnet for DCOS or Swarm DefaultMasterSubnet = "172.16.0.0/24" // DefaultFirstConsecutiveStaticIP specifies the static IP address on master 0 for DCOS or Swarm DefaultFirstConsecutiveStaticIP = "172.16.0.5" // DefaultSwarmWindowsMasterSubnet specifies the default master subnet for a Swarm Windows cluster DefaultSwarmWindowsMasterSubnet = "192.168.255.0/24" // DefaultSwarmWindowsFirstConsecutiveStaticIP specifies the static IP address on master 0 for a Swarm WIndows cluster DefaultSwarmWindowsFirstConsecutiveStaticIP = "192.168.255.5" // DefaultDCOSMasterSubnet specifies the default master subnet for a DCOS cluster DefaultDCOSMasterSubnet = "192.168.255.0/24" // DefaultDCOSFirstConsecutiveStaticIP specifies the static IP address on master 0 for a DCOS cluster DefaultDCOSFirstConsecutiveStaticIP = "192.168.255.5" // DefaultDCOSBootstrapStaticIP specifies the static IP address on bootstrap for a DCOS cluster DefaultDCOSBootstrapStaticIP = "192.168.255.240" // DefaultKubernetesMasterSubnet specifies the default subnet for masters and agents. DefaultKubernetesMasterSubnet = "10.240.0.0/16" // DefaultKubernetesClusterSubnet specifies the default subnet for pods. DefaultKubernetesClusterSubnet = "10.244.0.0/16" // DefaultDockerBridgeSubnet specifies the default subnet for the docker bridge network for masters and agents. DefaultDockerBridgeSubnet = "172.17.0.1/16" // DefaultFirstConsecutiveKubernetesStaticIP specifies the static IP address on Kubernetes master 0 DefaultFirstConsecutiveKubernetesStaticIP = "10.240.255.5" // DefaultAgentSubnetTemplate specifies a default agent subnet DefaultAgentSubnetTemplate = "10.%d.0.0/16" // DefaultKubernetesSubnet specifies the default subnet used for all masters, agents and pods // when VNET integration is enabled. DefaultKubernetesSubnet = "10.240.0.0/12" // DefaultKubernetesFirstConsecutiveStaticIPOffset specifies the IP address offset of master 0 // when VNET integration is enabled. DefaultKubernetesFirstConsecutiveStaticIPOffset = 5 // DefaultKubernetesMaxPods is the maximum number of pods to run on a node. DefaultKubernetesMaxPods = 110 // DefaultKubernetesMaxPodsVNETIntegrated is the maximum number of pods to run on a node when VNET integration is enabled. DefaultKubernetesMaxPodsVNETIntegrated = 30 // DefaultKubernetesClusterDomain is the dns suffix used in the cluster (used as a SAN in the PKI generation) DefaultKubernetesClusterDomain = "cluster.local" // DefaultInternalLbStaticIPOffset specifies the offset of the internal LoadBalancer's IP // address relative to the first consecutive Kubernetes static IP DefaultInternalLbStaticIPOffset = 10 // NetworkPolicyNone is the string expression for the deprecated NetworkPolicy usage pattern "none" NetworkPolicyNone = "none" // NetworkPolicyCalico is the string expression for calico network policy config option NetworkPolicyCalico = "calico" // NetworkPolicyCilium is the string expression for cilium network policy config option NetworkPolicyCilium = "cilium" // NetworkPolicyAzure is the string expression for Azure CNI network policy manager NetworkPolicyAzure = "azure" // NetworkPluginAzure is the string expression for Azure CNI plugin NetworkPluginAzure = "azure" // NetworkPluginKubenet is the string expression for kubenet network plugin NetworkPluginKubenet = "kubenet" // NetworkPluginFlannel is the string expression for flannel network policy config option NetworkPluginFlannel = "flannel" // DefaultNetworkPlugin defines the network plugin to use by default DefaultNetworkPlugin = NetworkPluginKubenet // DefaultNetworkPolicy defines the network policy implementation to use by default DefaultNetworkPolicy = "" // DefaultNetworkPluginWindows defines the network plugin implementation to use by default for clusters with Windows agent pools DefaultNetworkPluginWindows = NetworkPluginKubenet // DefaultNetworkPolicyWindows defines the network policy implementation to use by default for clusters with Windows agent pools DefaultNetworkPolicyWindows = "" // DefaultContainerRuntime is docker DefaultContainerRuntime = "docker" // DefaultKubernetesNodeStatusUpdateFrequency is 10s, see --node-status-update-frequency at https://kubernetes.io/docs/admin/kubelet/ DefaultKubernetesNodeStatusUpdateFrequency = "10s" // DefaultKubernetesHardEvictionThreshold is memory.available<100Mi,nodefs.available<10%,nodefs.inodesFree<5%, see --eviction-hard at https://kubernetes.io/docs/admin/kubelet/ DefaultKubernetesHardEvictionThreshold = "memory.available<100Mi,nodefs.available<10%,nodefs.inodesFree<5%" // DefaultKubernetesCtrlMgrNodeMonitorGracePeriod is 40s, see --node-monitor-grace-period at https://kubernetes.io/docs/admin/kube-controller-manager/ DefaultKubernetesCtrlMgrNodeMonitorGracePeriod = "40s" // DefaultKubernetesCtrlMgrPodEvictionTimeout is 5m0s, see --pod-eviction-timeout at https://kubernetes.io/docs/admin/kube-controller-manager/ DefaultKubernetesCtrlMgrPodEvictionTimeout = "5m0s" // DefaultKubernetesCtrlMgrRouteReconciliationPeriod is 10s, see --route-reconciliation-period at https://kubernetes.io/docs/admin/kube-controller-manager/ DefaultKubernetesCtrlMgrRouteReconciliationPeriod = "10s" // DefaultKubernetesCtrlMgrTerminatedPodGcThreshold is set to 5000, see --terminated-pod-gc-threshold at https://kubernetes.io/docs/admin/kube-controller-manager/ and https://github.com/kubernetes/kubernetes/issues/22680 DefaultKubernetesCtrlMgrTerminatedPodGcThreshold = "5000" // DefaultKubernetesCtrlMgrUseSvcAccountCreds is "true", see --use-service-account-credentials at https://kubernetes.io/docs/admin/kube-controller-manager/ DefaultKubernetesCtrlMgrUseSvcAccountCreds = "false" // DefaultKubernetesCloudProviderBackoff is false to disable cloudprovider backoff implementation for API calls DefaultKubernetesCloudProviderBackoff = false // 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 // DefaultKubernetesCloudProviderRateLimit is false to disable cloudprovider rate limiting implementation for API calls DefaultKubernetesCloudProviderRateLimit = false // DefaultKubernetesCloudProviderRateLimitQPS is 3, takes effect if DefaultKubernetesCloudProviderRateLimit is true DefaultKubernetesCloudProviderRateLimitQPS = 3.0 // DefaultKubernetesCloudProviderRateLimitBucket is 10, takes effect if DefaultKubernetesCloudProviderRateLimit is true DefaultKubernetesCloudProviderRateLimitBucket = 10 // DefaultTillerAddonName is the name of the tiller addon deployment DefaultTillerAddonName = "tiller" // DefaultTillerMaxHistory limits the maximum number of revisions saved per release. Use 0 for no limit. DefaultTillerMaxHistory = 0 // DefaultACIConnectorAddonName is the name of the tiller addon deployment DefaultACIConnectorAddonName = "aci-connector" // DefaultDashboardAddonName is the name of the kubernetes-dashboard addon deployment DefaultDashboardAddonName = "kubernetes-dashboard" // DefaultClusterAutoscalerAddonName is the name of the autoscaler addon deployment DefaultClusterAutoscalerAddonName = "cluster-autoscaler" // DefaultKeyVaultFlexVolumeAddonName is the name of the keyvault flexvolume addon deployment DefaultKeyVaultFlexVolumeAddonName = "keyvault-flexvolume" // 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" // DefaultKubernetesServiceCIDR specifies the IP subnet that kubernetes will // create Service IPs within. DefaultKubernetesServiceCIDR = "10.0.0.0/16" //DefaultKubernetesGCHighThreshold specifies the value for for the image-gc-high-threshold kubelet flag DefaultKubernetesGCHighThreshold = 85 //DefaultKubernetesGCLowThreshold specifies the value for the image-gc-low-threshold kubelet flag DefaultKubernetesGCLowThreshold = 80 // DefaultGeneratorCode specifies the source generator of the cluster template. DefaultGeneratorCode = "acsengine" // 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" // DefaultEtcdVersion specifies the default etcd version to install DefaultEtcdVersion = "3.2.23" // DefaultEtcdDiskSize specifies the default size for Kubernetes master etcd disk volumes in GB DefaultEtcdDiskSize = "256" // DefaultEtcdDiskSizeGT3Nodes = size for Kubernetes master etcd disk volumes in GB if > 3 nodes DefaultEtcdDiskSizeGT3Nodes = "512" // DefaultEtcdDiskSizeGT10Nodes = size for Kubernetes master etcd disk volumes in GB if > 10 nodes DefaultEtcdDiskSizeGT10Nodes = "1024" // DefaultEtcdDiskSizeGT20Nodes = size for Kubernetes master etcd disk volumes in GB if > 20 nodes DefaultEtcdDiskSizeGT20Nodes = "2048" // 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 kubernetes NVIDIA Device Plugin daemon set NVIDIADevicePluginAddonName = "nvidia-device-plugin" // ContainerMonitoringAddonName is the name of the kubernetes Container Monitoring addon deployment ContainerMonitoringAddonName = "container-monitoring" // AzureCNINetworkMonitoringAddonName is the name of the Azure CNI networkmonitor addon AzureCNINetworkMonitoringAddonName = "azure-cni-networkmonitor" // AzureNetworkPolicyAddonName is the name of the Azure CNI networkmonitor addon AzureNetworkPolicyAddonName = "azure-npm-daemonset" // DefaultKubernetesKubeletMaxPods is the max pods per kubelet DefaultKubernetesKubeletMaxPods = 110 // DefaultMasterEtcdServerPort is the default etcd server port for Kubernetes master nodes DefaultMasterEtcdServerPort = 2380 // DefaultMasterEtcdClientPort is the default etcd client port for Kubernetes master nodes DefaultMasterEtcdClientPort = 2379 // DefaultKubeletEventQPS is 0, see --event-qps at https://kubernetes.io/docs/reference/generated/kubelet/ DefaultKubeletEventQPS = "0" // DefaultKubeletCadvisorPort is 0, see --cadvisor-port at https://kubernetes.io/docs/reference/generated/kubelet/ DefaultKubeletCadvisorPort = "0" // DefaultJumpboxDiskSize specifies the default size for private cluster jumpbox OS disk in GB DefaultJumpboxDiskSize = 30 // DefaultJumpboxUsername specifies the default admin username for the private cluster jumpbox DefaultJumpboxUsername = "azureuser" // DefaultKubeletPodMaxPIDs specifies the default max pid authorized by pods DefaultKubeletPodMaxPIDs = 100 )
const ( //DefaultExtensionsRootURL Root URL for extensions DefaultExtensionsRootURL = "https://raw.githubusercontent.com/Azure/acs-engine/master/" // DefaultDockerEngineRepo for grabbing docker engine packages DefaultDockerEngineRepo = "https://download.docker.com/linux/ubuntu" // DefaultDockerComposeURL for grabbing docker images DefaultDockerComposeURL = "https://github.com/docker/compose/releases/download" //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" )
const ( // AzureCniPluginVer 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 AzureCniPluginVer = "v1.0.7" // CNIPluginVer specifies the version of CNI implementation // https://github.com/containernetworking/plugins CNIPluginVer = "v0.7.1" )
const ( // ValidityDuration specifies the duration an TLS certificate is valid ValidityDuration = time.Hour * 24 * 365 * 2 // PkiKeySize is the size in bytes of the PKI key PkiKeySize = 4096 )
const (
//DefaultConfigurationScriptRootURL Root URL for configuration script (used for script extension on RHEL)
DefaultConfigurationScriptRootURL = "https://raw.githubusercontent.com/Azure/acs-engine/master/parts/"
)
Variables ¶
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-" + AzureCniPluginVer + ".tgz", VnetCNIWindowsPluginsDownloadURL: "https://acs-mirror.azureedge.net/cni/azure-vnet-cni-windows-amd64-" + AzureCniPluginVer + ".zip", } //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.201807240", } //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", } //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[api.Distro]AzureOSImageConfig{ api.Ubuntu: DefaultUbuntuImageConfig, api.RHEL: DefaultRHELOSImageConfig, api.CoreOS: DefaultCoreOSImageConfig, api.OpenShift39RHEL: DefaultOpenShift39RHELImageConfig, api.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[api.Distro]AzureOSImageConfig{ api.Ubuntu: { ImageOffer: "UbuntuServer", ImageSku: "16.04-LTS", ImagePublisher: "Canonical", ImageVersion: "16.04.201801050", }, api.RHEL: DefaultRHELOSImageConfig, api.CoreOS: DefaultCoreOSImageConfig, }, } //AzureUSGovernmentCloud is the US government config. AzureUSGovernmentCloud = AzureEnvironmentSpecConfig{ CloudName: azureUSGovernmentCloud, DockerSpecConfig: DefaultDockerSpecConfig, KubernetesSpecConfig: DefaultKubernetesSpecConfig, DCOSSpecConfig: DefaultDCOSSpecConfig, EndpointConfig: AzureEndpointConfig{ ResourceManagerVMDNSSuffix: "cloudapp.usgovcloudapi.net", }, OSImageConfig: map[api.Distro]AzureOSImageConfig{ api.Ubuntu: { ImageOffer: "UbuntuServer", ImageSku: "16.04-LTS", ImagePublisher: "Canonical", ImageVersion: "latest", }, api.RHEL: DefaultRHELOSImageConfig, api.CoreOS: DefaultCoreOSImageConfig, }, } //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: "crproxy.trafficmanager.net:6000/google_containers/", TillerImageBase: "crproxy.trafficmanager.net:6000/kubernetes-helm/", ACIConnectorImageBase: DefaultKubernetesSpecConfig.ACIConnectorImageBase, EtcdDownloadURLBase: DefaultKubernetesSpecConfig.EtcdDownloadURLBase, KubeBinariesSASURLBase: DefaultKubernetesSpecConfig.KubeBinariesSASURLBase, WindowsPackageSASURLBase: DefaultKubernetesSpecConfig.WindowsPackageSASURLBase, WindowsTelemetryGUID: DefaultKubernetesSpecConfig.WindowsTelemetryGUID, CNIPluginsDownloadURL: DefaultKubernetesSpecConfig.CNIPluginsDownloadURL, VnetCNILinuxPluginsDownloadURL: DefaultKubernetesSpecConfig.VnetCNILinuxPluginsDownloadURL, VnetCNIWindowsPluginsDownloadURL: DefaultKubernetesSpecConfig.VnetCNIWindowsPluginsDownloadURL, }, 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[api.Distro]AzureOSImageConfig{ api.Ubuntu: { ImageOffer: "UbuntuServer", ImageSku: "16.04-LTS", ImagePublisher: "Canonical", ImageVersion: "latest", }, api.RHEL: DefaultRHELOSImageConfig, api.CoreOS: DefaultCoreOSImageConfig, }, } // DefaultTillerAddonsConfig is the default tiller Kubernetes addon Config DefaultTillerAddonsConfig = api.KubernetesAddon{ Name: DefaultTillerAddonName, Enabled: helpers.PointerToBool(api.DefaultTillerAddonEnabled), Containers: []api.KubernetesContainerSpec{ { Name: DefaultTillerAddonName, CPURequests: "50m", MemoryRequests: "150Mi", CPULimits: "50m", MemoryLimits: "150Mi", }, }, Config: map[string]string{ "max-history": strconv.Itoa(DefaultTillerMaxHistory), }, } // DefaultACIConnectorAddonsConfig is the default ACI Connector Kubernetes addon Config DefaultACIConnectorAddonsConfig = api.KubernetesAddon{ Name: DefaultACIConnectorAddonName, Enabled: helpers.PointerToBool(api.DefaultACIConnectorAddonEnabled), Config: map[string]string{ "region": "westus", "nodeName": "aci-connector", "os": "Linux", "taint": "azure.com/aci", }, Containers: []api.KubernetesContainerSpec{ { Name: DefaultACIConnectorAddonName, CPURequests: "50m", MemoryRequests: "150Mi", CPULimits: "50m", MemoryLimits: "150Mi", }, }, } // DefaultClusterAutoscalerAddonsConfig is the default cluster autoscaler addon config DefaultClusterAutoscalerAddonsConfig = api.KubernetesAddon{ Name: DefaultClusterAutoscalerAddonName, Enabled: helpers.PointerToBool(api.DefaultClusterAutoscalerAddonEnabled), Config: map[string]string{ "minNodes": "1", "maxNodes": "5", }, Containers: []api.KubernetesContainerSpec{ { Name: DefaultClusterAutoscalerAddonName, CPURequests: "100m", MemoryRequests: "300Mi", CPULimits: "100m", MemoryLimits: "300Mi", }, }, } // DefaultKeyVaultFlexVolumeAddonsConfig is the default KeyVault FlexVolume Kubernetes addon Config DefaultKeyVaultFlexVolumeAddonsConfig = api.KubernetesAddon{ Name: DefaultKeyVaultFlexVolumeAddonName, Enabled: helpers.PointerToBool(api.DefaultKeyVaultFlexVolumeAddonEnabled), Containers: []api.KubernetesContainerSpec{ { Name: DefaultKeyVaultFlexVolumeAddonName, CPURequests: "50m", MemoryRequests: "10Mi", CPULimits: "50m", MemoryLimits: "10Mi", }, }, } // DefaultDashboardAddonsConfig is the default kubernetes-dashboard addon Config DefaultDashboardAddonsConfig = api.KubernetesAddon{ Name: DefaultDashboardAddonName, Enabled: helpers.PointerToBool(api.DefaultDashboardAddonEnabled), Containers: []api.KubernetesContainerSpec{ { Name: DefaultDashboardAddonName, CPURequests: "300m", MemoryRequests: "150Mi", CPULimits: "300m", MemoryLimits: "150Mi", }, }, } // DefaultReschedulerAddonsConfig is the default rescheduler Kubernetes addon Config DefaultReschedulerAddonsConfig = api.KubernetesAddon{ Name: DefaultReschedulerAddonName, Enabled: helpers.PointerToBool(api.DefaultReschedulerAddonEnabled), Containers: []api.KubernetesContainerSpec{ { Name: DefaultReschedulerAddonName, CPURequests: "10m", MemoryRequests: "100Mi", CPULimits: "10m", MemoryLimits: "100Mi", }, }, } // DefaultMetricsServerAddonsConfig is the default metrics-server Kubernetes addon Config DefaultMetricsServerAddonsConfig = api.KubernetesAddon{ Name: DefaultMetricsServerAddonName, Enabled: helpers.PointerToBool(api.DefaultMetricsServerAddonEnabled), Containers: []api.KubernetesContainerSpec{ { Name: DefaultMetricsServerAddonName, }, }, } // DefaultNVIDIADevicePluginAddonsConfig is the default NVIDIA Device Plugin Kubernetes addon Config DefaultNVIDIADevicePluginAddonsConfig = api.KubernetesAddon{ Name: NVIDIADevicePluginAddonName, Containers: []api.KubernetesContainerSpec{ { Name: NVIDIADevicePluginAddonName, CPURequests: "50m", MemoryRequests: "10Mi", CPULimits: "50m", MemoryLimits: "10Mi", }, }, } // DefaultContainerMonitoringAddonsConfig is the default container monitoring Kubernetes addon Config DefaultContainerMonitoringAddonsConfig = api.KubernetesAddon{ Name: ContainerMonitoringAddonName, Enabled: helpers.PointerToBool(api.DefaultContainerMonitoringAddonEnabled), Config: map[string]string{ "omsAgentVersion": "1.6.0-42", "dockerProviderVersion": "2.0.0-3", }, Containers: []api.KubernetesContainerSpec{ { Name: "omsagent", Image: "microsoft/oms:June21st", CPURequests: "50m", MemoryRequests: "100Mi", CPULimits: "150m", MemoryLimits: "500Mi", }, }, } // DefaultAzureCNINetworkMonitorAddonsConfig is the default Azure CNI networkmonitor Kubernetes addon Config DefaultAzureCNINetworkMonitorAddonsConfig = api.KubernetesAddon{ Name: AzureCNINetworkMonitoringAddonName, Containers: []api.KubernetesContainerSpec{ { Name: AzureCNINetworkMonitoringAddonName, }, }, } // DefaultAzureNetworkPolicyAddonsConfig is the default Azure NetworkPolicy addon config DefaultAzureNetworkPolicyAddonsConfig = api.KubernetesAddon{ Name: AzureNetworkPolicyAddonName, Containers: []api.KubernetesContainerSpec{ { Name: AzureNetworkPolicyAddonName, }, }, } )
var AzureLocations = []string{
"australiacentral",
"australiacentral2",
"australiaeast",
"australiasoutheast",
"brazilsouth",
"canadacentral",
"canadaeast",
"centralindia",
"centralus",
"centraluseuap",
"chinaeast",
"chinaeast2",
"chinanorth",
"chinanorth2",
"eastasia",
"eastus",
"eastus2",
"eastus2euap",
"francecentral",
"francesouth",
"japaneast",
"japanwest",
"koreacentral",
"koreasouth",
"northcentralus",
"northeurope",
"southcentralus",
"southeastasia",
"southindia",
"uksouth",
"ukwest",
"westcentralus",
"westeurope",
"westindia",
"westus",
"westus2",
"chinaeast",
"chinanorth",
"chinanorth2",
"chinaeast2",
"germanycentral",
"germanynortheast",
"usgovvirginia",
"usgoviowa",
"usgovarizona",
"usgovtexas",
"francecentral",
}
AzureLocations provides all azure regions in prod. Related powershell to refresh this list:
Get-AzureRmLocation | Select-Object -Property Location
var KubeConfigs = getKubeConfigs()
KubeConfigs represents Docker images used for Kubernetes components based on Kubernetes versions (major.minor.patch)
Functions ¶
func CreateMockContainerService ¶ added in v0.20.0
func CreateMockContainerService(containerServiceName, orchestratorVersion string, masterCount, agentCount int, certs bool) *api.ContainerService
CreateMockContainerService returns a mock container service for testing purposes
func CreatePki ¶
func CreatePki(extraFQDNs []string, extraIPs []net.IP, clusterDomain string, caPair *PkiKeyCertPair, masterCount int) (*PkiKeyCertPair, *PkiKeyCertPair, *PkiKeyCertPair, *PkiKeyCertPair, *PkiKeyCertPair, []*PkiKeyCertPair, error)
CreatePki creates PKI certificates
func CreateSaveSSH ¶ added in v0.4.0
func CreateSaveSSH(username, outputDirectory string, s *i18n.Translator) (privateKey *rsa.PrivateKey, publicKeyString string, err error)
CreateSaveSSH generates and stashes an SSH key pair.
func FormatAzureProdFQDN ¶
FormatAzureProdFQDN constructs an Azure prod fqdn
func GenerateClusterID ¶
func GenerateClusterID(properties *api.Properties) string
GenerateClusterID creates a unique 8 string cluster ID
func GenerateKubeConfig ¶
func GenerateKubeConfig(properties *api.Properties, location string) (string, error)
GenerateKubeConfig returns a JSON string representing the KubeConfig
func GetClassicAllowedSizes ¶
func GetClassicAllowedSizes() string
GetClassicAllowedSizes returns the classic allowed sizes
func GetClassicSizeMap ¶
func GetClassicSizeMap() string
GetClassicSizeMap returns the size / storage map
func GetDCOSMasterAllowedSizes ¶
func GetDCOSMasterAllowedSizes() string
GetDCOSMasterAllowedSizes returns the master allowed sizes
func GetKubernetesAgentAllowedSizes ¶
func GetKubernetesAgentAllowedSizes() string
GetKubernetesAgentAllowedSizes returns the allowed sizes for Kubernetes agent
func GetMasterAgentAllowedSizes ¶
func GetMasterAgentAllowedSizes() string
GetMasterAgentAllowedSizes returns the agent allowed sizes
Types ¶
type ArtifactWriter ¶ added in v0.5.0
type ArtifactWriter struct {
Translator *i18n.Translator
}
ArtifactWriter represents the object that writes artifacts
func (*ArtifactWriter) WriteTLSArtifacts ¶ added in v0.5.0
func (w *ArtifactWriter) WriteTLSArtifacts(containerService *api.ContainerService, apiVersion, template, parameters, artifactsDir string, certsGenerated bool, parametersOnly bool) error
WriteTLSArtifacts saves TLS certificates and keys to the server filesystem
type AzureEndpointConfig ¶ added in v0.6.0
type AzureEndpointConfig struct {
ResourceManagerVMDNSSuffix string
}
AzureEndpointConfig describes an Azure endpoint
type AzureEnvironmentSpecConfig ¶
type AzureEnvironmentSpecConfig struct { CloudName string DockerSpecConfig DockerSpecConfig KubernetesSpecConfig KubernetesSpecConfig DCOSSpecConfig DCOSSpecConfig EndpointConfig AzureEndpointConfig OSImageConfig map[api.Distro]AzureOSImageConfig }
AzureEnvironmentSpecConfig is the overall configuration differences in different cloud environments.
type AzureOSImageConfig ¶ added in v0.6.0
type AzureOSImageConfig struct { ImageOffer string ImageSku string ImagePublisher string ImageVersion string }
AzureOSImageConfig describes an Azure OS image
type Context ¶ added in v0.5.0
type Context struct {
Translator *i18n.Translator
}
Context represents the object that is passed to the package
type CustomFileReader ¶ added in v0.19.0
CustomFileReader takes represents the source text of a file as an io.Reader and the desired destination to add it to
type DCOSNodeType ¶
type DCOSNodeType string
DCOSNodeType represents the type of DCOS Node
const ( // DCOSMaster represents the master node type DCOSMaster DCOSNodeType = "DCOSMaster" // DCOSPrivateAgent represents the private agent node type DCOSPrivateAgent DCOSNodeType = "DCOSPrivateAgent" // DCOSPublicAgent represents the public agent node type DCOSPublicAgent DCOSNodeType = "DCOSPublicAgent" )
type DCOSSpecConfig ¶
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 DockerSpecConfig ¶
DockerSpecConfig is the configurations of docker
type FileSaver ¶ added in v0.5.0
type FileSaver struct {
Translator *i18n.Translator
}
FileSaver represents the object that save string or byte data to file
type KeyVaultID ¶
type KeyVaultID struct {
ID string `json:"id"`
}
KeyVaultID represents a KeyVault instance on Azure
type KeyVaultRef ¶
type KeyVaultRef struct { KeyVault KeyVaultID `json:"keyVault"` SecretName string `json:"secretName"` SecretVersion string `json:"secretVersion,omitempty"` }
KeyVaultRef represents a reference to KeyVault instance on Azure
type KubernetesSpecConfig ¶
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 }
KubernetesSpecConfig is the kubernetes container images used.
type PkiKeyCertPair ¶
PkiKeyCertPair represents an PKI public and private cert pair
type TemplateGenerator ¶
type TemplateGenerator struct { ClassicMode bool Translator *i18n.Translator }
TemplateGenerator represents the object that performs the template generation.
func InitializeTemplateGenerator ¶
func InitializeTemplateGenerator(ctx Context, classicMode bool) (*TemplateGenerator, error)
InitializeTemplateGenerator creates a new template generator object
func (*TemplateGenerator) GenerateTemplate ¶
func (t *TemplateGenerator) GenerateTemplate(containerService *api.ContainerService, generatorCode string, isUpgrade, isScale bool, acsengineVersion string) (templateRaw string, parametersRaw string, certsGenerated bool, err error)
GenerateTemplate generates the template from the API Model
type V20160330ContainerService ¶
type V20160330ContainerService struct { api.TypeMeta *v20160330.ContainerService }
V20160330ContainerService 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 VlabsContainerService ¶
type VlabsContainerService struct { api.TypeMeta *vlabs.ContainerService }
VlabsContainerService 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
Source Files ¶
- addons.go
- azureconst.go
- const.go
- customfiles.go
- defaults-apiserver.go
- defaults-cloud-controller-manager.go
- defaults-controller-manager.go
- defaults-kubelet.go
- defaults-scheduler.go
- defaults.go
- doc.go
- engine.go
- fileloader.go
- filesaver.go
- k8s_versions.go
- mocks.go
- output.go
- params.go
- params_k8s.go
- pki.go
- ssh.go
- template_generator.go
- tenantid.go
- types.go