Documentation ¶
Overview ¶
Package acsengine takes an ACS cluster model and generates the corresponding template
Index ¶
- Constants
- Variables
- 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(env azure.Environment, 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" // NetworkPluginAzure is the string expression for Azure CNI network policy 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" // 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.16" // 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" // 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.4" // 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-gcrio.azureedge.net/", TillerImageBase: "gcrio.azureedge.net/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.201806220", } //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{ 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{ 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{ 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{ 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", }, }, } // 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, }, }, } // 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, }, }, } )
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 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
func GetTenantID ¶
func GetTenantID(env azure.Environment, subscriptionID string) (string, error)
GetTenantID figures out the AAD tenant ID of the subscription by making an unauthenticated request to the Get Subscription Details endpoint and parses the value from WWW-Authenticate header.
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 { 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 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
- output.go
- params.go
- params_k8s.go
- pki.go
- ssh.go
- template_generator.go
- tenantid.go
- types.go