chore: Ubuntu 16.04-LTS is EOL (#4418)

This commit is contained in:
Jack Francis 2021-05-18 10:16:46 -07:00 коммит произвёл GitHub
Родитель 4c48c7fb9a
Коммит 90867d6f6e
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
24 изменённых файлов: 51 добавлений и 112 удалений

Просмотреть файл

@ -13,7 +13,7 @@ jobs:
strategy:
maxParallel: 0
pool:
vmImage: ubuntu-16.04
vmImage: ubuntu-18.04
container: dev1

Просмотреть файл

@ -672,11 +672,6 @@ func TestExampleAPIModels(t *testing.T) {
apiModelPath: "../examples/service-mesh/istio.json",
setArgs: defaultSet,
},
{
name: "ubuntu 16.04",
apiModelPath: "../examples/ubuntu-1604/kubernetes.json",
setArgs: defaultSet,
},
{
name: "ubuntu 18.04",
apiModelPath: "../examples/ubuntu-1804/kubernetes.json",

Просмотреть файл

@ -89,7 +89,7 @@ func newGetLogsCmd() *cobra.Command {
command.Flags().StringVarP(&glc.apiModelPath, "api-model", "m", "", "path to the generated apimodel.json file (required)")
command.Flags().StringVar(&glc.sshHostURI, "ssh-host", "", "FQDN, or IP address, of an SSH listener that can reach all nodes in the cluster (required)")
command.Flags().StringVar(&glc.linuxSSHPrivateKeyPath, "linux-ssh-private-key", "", "path to a valid private SSH key to access the cluster's Linux nodes (required)")
command.Flags().StringVar(&glc.linuxScriptPath, "linux-script", "", "path to the log collection script to execute on the cluster's Linux nodes (required if distro is not aks-ubuntu)")
command.Flags().StringVar(&glc.linuxScriptPath, "linux-script", "", "path to the log collection script to execute on the cluster's Linux nodes (required if distro is not aks-ubuntu-18.04)")
command.Flags().StringVar(&glc.windowsScriptPath, "windows-script", "", "path to the log collection script to execute on the cluster's Windows nodes (required if distro is not aks-windows)")
command.Flags().StringVarP(&glc.outputDirectory, "output-directory", "o", "", "collected logs destination directory, derived from --api-model if missing")
command.Flags().BoolVarP(&glc.controlPlaneOnly, "control-plane-only", "", false, "get logs from control plane VMs only")
@ -341,7 +341,7 @@ func getClusterNodeScripts(glc *getLogsCmd, nodes []*ssh.RemoteHost) map[*ssh.Re
}
for pool, hasScript := range poolHasScript {
if !hasScript {
log.Warnf("Skipping node pool '%s' as flag '--linux-script' is not set and the pool distro is not aks-ubuntu", pool)
log.Warnf("Skipping node pool '%s' as flag '--linux-script' is not set and the pool distro is not aks-ubuntu-18.04", pool)
}
}
if isWindowsSkipped {

Просмотреть файл

@ -102,7 +102,7 @@ Unless otherwise specified down below, standard [cluster definition](../../docs/
| Name | Required | Description|
| ------------------------------- | -------- | ---------- |
| vmsize | yes | Specifies a valid [Azure Stack Hub VM size](https://docs.microsoft.com/azure-stack/user/azure-stack-vm-sizes). |
| distro | yes | Specifies the control plane's Linux distribution. The supported values are `"aks-ubuntu-16.04"` and `"aks-ubuntu-18.04"`. These are custom images based on UbuntuServer that come with pre-installed software necessary for Kubernetes deployments. |
| distro | yes | Specifies the control plane's Linux distribution. `"aks-ubuntu-18.04"` is supported. This is a custom image based on UbuntuServer that come with pre-installed software necessary for Kubernetes deployments. |
### agentPoolProfiles
@ -112,7 +112,7 @@ Unless otherwise specified down below, standard [cluster definition](../../docs/
| ------------------------------- | -------- | ---------- |
| vmsize | yes | Describes a valid [Azure Stack Hub VM size](https://docs.microsoft.com/azure-stack/user/azure-stack-vm-sizes). |
| osType | no | Specifies the agent pool's Operating System. Supported values are `"Windows"` and `"Linux"`. Defaults to `"Linux"`. |
| distro | yes | Specifies the control plane's Linux distribution. The supported values are `"aks-ubuntu-16.04"` and `"aks-ubuntu-18.04"`. These are custom images based on UbuntuServer that come with pre-installed software necessary for Kubernetes deployments. |
| distro | yes | Specifies the control plane's Linux distribution. `"aks-ubuntu-18.04"` is supported. This is a custom image based on UbuntuServer that come with pre-installed software necessary for Kubernetes deployments. |
| availabilityProfile | yes | Only `"AvailabilitySet"` is currently supported. |
| acceleratedNetworkingEnabled | yes | Use `Azure Accelerated Networking` feature for Linux agents. This property should be always set to `"false"`. |
@ -126,7 +126,7 @@ By default, the AKS Engine provisioning process relies on an internet connection
If your Azure Stack Hub instance is air-gapped or if network connectivity in your geographical location is not reliable, then the default approach will not work, take a long time or timeout due to transient networking issues.
To overcome these issues, you should set the `distro` property of your cluster definition to `"aks-ubuntu-16.04"` or `"aks-ubuntu-18.04"`. This will instruct AKS Engine to deploy VM nodes using a base OS image called `AKS Base Image`. This custom image, generally based on Ubuntu Server, already contains the required software dependencies in its file system. Hence, internet connectivity won't be required during the provisioning process.
To overcome these issues, you should set the `distro` property of your cluster definition to `"aks-ubuntu-18.04"`. This will instruct AKS Engine to deploy VM nodes using a base OS image called `AKS Base Image`. This custom image, generally based on Ubuntu Server, already contains the required software dependencies in its file system. Hence, internet connectivity won't be required during the provisioning process.
The `AKS Base Image` marketplace item has to be available in your Azure Stack Hub's Marketplace before it could be used by AKS Engine. Your Azure Stack Hub administrator can follow this [guide](https://docs.microsoft.com/azure-stack/operator/azure-stack-download-azure-marketplace-item) for a general explanation about how to download marketplace items from Azure.

Просмотреть файл

@ -799,13 +799,13 @@ Below is a list of sysctl configuration that AKS Engine will configure by defaul
| imageReference.subscriptionId | no | ID of subscription containing the Linux OS image. Applies only to Shared Image Galleries. All of name, resourceGroup, subscription, gallery, image name, and version must be specified for this scenario. |
| imageReference.gallery | no | Name of Shared Image Gallery containing the Linux OS image. Applies only to Shared Image Galleries. All of name, resourceGroup, subscription, gallery, image name, and version must be specified for this scenario. |
| imageReference.version | no | Version containing the Linux OS image. Applies only to Shared Image Galleries. All of name, resourceGroup, subscription, gallery, image name, and version must be specified for this scenario. |
| distro | no | Specifies the masters' Linux distribution. Currently supported values are: `ubuntu`, `ubuntu-18.04`, `ubuntu-18.04-gen2` (Ubuntu 18.04-LTS running on a [Generation 2 VM](https://docs.microsoft.com/en-us/azure/virtual-machines/windows/generation-2)), `aks-ubuntu-16.04` (previously `aks`), and `aks-ubuntu-18.04`. For Azure Public Cloud, Azure US Government Cloud, and Azure China Cloud, defaults to `aks-ubuntu-18.04`. For other Sovereign Clouds, the default is `ubuntu-18.04`. `aks-ubuntu-18.04` is a custom image based on `ubuntu-18.04` that comes with pre-installed software necessary for Kubernetes deployments. |
| distro | no | Specifies the masters' Linux distribution. Currently supported values are: `ubuntu-18.04`, `ubuntu-18.04-gen2` (Ubuntu 18.04-LTS running on a [Generation 2 VM](https://docs.microsoft.com/en-us/azure/virtual-machines/windows/generation-2)), and `aks-ubuntu-18.04`. For Azure Public Cloud, Azure US Government Cloud, and Azure China Cloud, defaults to `aks-ubuntu-18.04`. For other Sovereign Clouds, the default is `ubuntu-18.04`. `aks-ubuntu-18.04` is a custom image based on `ubuntu-18.04` that comes with pre-installed software necessary for Kubernetes deployments. Note: the `ubuntu` and `aks-ubuntu-16.04` distro values may be used if you have a reason to use the EOL (End of Life) Ubuntu 16.04-LTS OS; we do not recommend using Ubuntu 16.04-LTS, as the OS will no longer be receiving security and other critical patches as of April 30, 2021. |
| customFiles | no | The custom files to be provisioned to the master nodes. Defined as an array of JSON objects with each defined as `"source":"absolute-local-path", "dest":"absolute-path-on-masternodes"`.[See examples](../../examples/customfiles) |
| availabilityProfile | no | Supported values are `AvailabilitySet` (default) and `VirtualMachineScaleSets` (not recommended: you may not upgrade a cluster built with a VMSS control plane). If you do use a `VirtualMachineScaleSets` configuration for your control plane: all node pools require a `"availabilityProfile": "VirtualMachineScaleSets"` configuration; and, to SSH into a control plane node, you need to use `ssh -p 50001` instead of port 22. |
| agentVnetSubnetId | only required when using custom VNET and when MasterProfile is using `VirtualMachineScaleSets` | Specifies the Id of an alternate VNET subnet for all the agent pool nodes. The subnet id must specify a valid VNET ID owned by the same subscription. ([bring your own VNET examples](../../examples/vnet)). When MasterProfile is using `VirtualMachineScaleSets`, this value should be the subnetId of the subnet for all agent pool nodes. |
| [availabilityZones](../../examples/kubernetes-zones/README.md) | no | To protect your cluster from datacenter-level failures, you can enable the Availability Zones feature for your master VMs. Check out [Availability Zones README](../../examples/kubernetes-zones/README.md) for more details. |
| cosmosEtcd | no | True: uses cosmos etcd endpoint instead of installing etcd on masters |
| auditDEnabled | no | Enable auditd enforcement at the OS layer for each node VM. This configuration is only valid on an agent pool with an Ubuntu-backed distro, i.e., the default "aks-ubuntu-18.04" distro, or the "aks-ubuntu-16.04", "ubuntu", "ubuntu-18.04", "ubuntu-18.04-gen2", or "acc-16.04" distro values. Defaults to `false` |
| auditDEnabled | no | Enable auditd enforcement at the OS layer for each node VM. This configuration is only valid on an agent pool with an Ubuntu-backed distro, e.g., the default "aks-ubuntu-18.04" distro, or the "ubuntu-18.04" distro. Defaults to `false` |
| ultraSSDEnabled | no | Enable UltraSSD feature for each node VM. More details about [Ultra disk](https://docs.microsoft.com/en-us/azure/virtual-machines/linux/disks-types#ultra-ssd-preview). |
| customVMTags | no | Specifies a list of custom tags to be added to the master VMs or Scale Sets. Each tag is a key/value pair (ie: `"myTagKey": "myTagValue"`). |
| sysctldConfig | no | Configure Linux kernel parameters via /etc/sysctl.d/. See `sysctldConfig` [below](#feat-sysctld-config) |
@ -838,13 +838,13 @@ A cluster can have 0 to 12 agent pool profiles. Agent Pool Profiles are used for
| imageReference.name | no | The name of a a Linux OS image. Needs to be used in conjunction with resourceGroup, below |
| imageReference.resourceGroup | no | Resource group that contains the Linux OS image. Needs to be used in conjunction with name, above |
| osType | no | Specifies the agent pool's Operating System. Supported values are `Windows` and `Linux`. Defaults to `Linux` |
| distro | no | Specifies the agent pool's Linux distribution. Currently supported values are: `ubuntu`, `ubuntu-18.04`, `aks-ubuntu-16.04` (previously `aks`), `aks-ubuntu-18.04`, `ubuntu-18.04-gen2` (Ubuntu 18.04-LTS running on a [Generation 2 VM](https://docs.microsoft.com/en-us/azure/virtual-machines/windows/generation-2)), and `flatcar` (Flatcar support is currently experimental - [Example of Flatcar Master with Flatcar Agents](../../examples/flatcar/kubernetes-flatcar.json)). For Azure Public Cloud, Azure US Government Cloud, and Azure China Cloud, defaults to `aks-ubuntu-18.04`. For Sovereign Clouds, the default is `ubuntu-18.04`. `aks-ubuntu-18.04` is a custom image based on `ubuntu-18.04` that comes with pre-installed software necessary for Kubernetes deployments. |
| distro | no | Specifies the agent pool's Linux distribution. Currently supported values are: `ubuntu-18.04`, `aks-ubuntu-18.04`, `ubuntu-18.04-gen2` (Ubuntu 18.04-LTS running on a [Generation 2 VM](https://docs.microsoft.com/en-us/azure/virtual-machines/windows/generation-2)), and `flatcar` (Flatcar support is currently experimental - [Example of Flatcar Master with Flatcar Agents](../../examples/flatcar/kubernetes-flatcar.json)). For Azure Public Cloud, Azure US Government Cloud, and Azure China Cloud, defaults to `aks-ubuntu-18.04`. For Sovereign Clouds, the default is `ubuntu-18.04`. `aks-ubuntu-18.04` is a custom image based on `ubuntu-18.04` that comes with pre-installed software necessary for Kubernetes deployments. Note: the `ubuntu` and `aks-ubuntu-16.04` distro values may be used if you have a reason to use the EOL (End of Life) Ubuntu 16.04-LTS OS; we do not recommend using Ubuntu 16.04-LTS, as the OS will no longer be receiving security and other critical patches as of April 30, 2021. |
| acceleratedNetworkingEnabled | no | Use [Azure Accelerated Networking](https://azure.microsoft.com/en-us/blog/maximize-your-vm-s-performance-with-accelerated-networking-now-generally-available-for-both-windows-and-linux/) feature for Linux agents (You must select a VM SKU that supports Accelerated Networking). Defaults to `true` if the VM SKU selected supports Accelerated Networking |
| acceleratedNetworkingEnabledWindows | no | Currently unstable, and disabled for new clusters! |
| vmssOverProvisioningEnabled | no | Use [Overprovisioning](https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-design-overview#overprovisioning) with VMSS. This configuration is only valid on an agent pool with an `"availabilityProfile"` value of `"VirtualMachineScaleSets"`. Defaults to `false` |
| enableVMSSNodePublicIP | no | Enable creation of public IP on VMSS nodes (must use `"availabilityProfile": "VirtualMachineScaleSets"`). This configuration is only valid on a cluster running a "Basic" LoadBalancer SKU (`"loadBalancerSku": "Basic"`, see: [`kubernetesConfig`](#kubernetesConfig)). Defaults to `false` |
| LoadBalancerBackendAddressPoolIDs | no | Enables automatic placement of the agent pool nodes into existing load balancer's backend address pools. Each element value of this string array is the corresponding load balancer backend address pool's Azure Resource Manager(ARM) resource ID. By default this property is not included in the API model, which is equivalent to an empty string array. |
| auditDEnabled | no | Enable auditd enforcement at the OS layer for each node VM. This configuration is only valid on an agent pool with an Ubuntu-backed distro, i.e., the default "aks-ubuntu-18.04" distro, or the "aks-ubuntu-16.04", "ubuntu", "ubuntu-18.04", or "acc-16.04" distro values. Defaults to `false` |
| auditDEnabled | no | Enable auditd enforcement at the OS layer for each node VM. This configuration is only valid on an agent pool with an Ubuntu-backed distro, e.g., the default "aks-ubuntu-18.04" distro, or the "ubuntu-18.04" distro. Defaults to `false` |
| customVMTags | no | Specifies a list of custom tags to be added to the agent VMs or Scale Sets. Each tag is a key/value pair (ie: `"myTagKey": "myTagValue"`). |
| diskEncryptionSetID | no | Specifies ResourceId of the disk encryption set to use for enabling encryption at rest (ie: `"/subscriptions/{subs-id}/resourceGroups/{rg-name}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSet-name}"`). More details about [Server side encryption of Azure managed disks](https://docs.microsoft.com/en-us/azure/virtual-machines/windows/disk-encryption). |
| ultraSSDEnabled | no | Enable UltraSSD feature for each node VM. More details about [Ultra disk](https://docs.microsoft.com/en-us/azure/virtual-machines/linux/disks-types#ultra-ssd-preview). |

Просмотреть файл

@ -435,7 +435,7 @@ az ad sp list --spn <YOUR SERVICE PRINCIPAL appId>
## Use a Shared Image Gallery image
This is possible by specifying `imageReference` under `masterProfile`, or on a given `agentPoolProfile`. It also requires setting the distro to an appropriate value (`ubuntu`, or `flatcar` [note: flatcar is only supported on nodes via `agentPoolProfile`]). When using `imageReference` with Shared Image Galleries, provide an image name and version, as well as the resource group, subscription, and name of the gallery. Example:
This is possible by specifying `imageReference` under `masterProfile`, or on a given `agentPoolProfile`. It also requires setting the distro to an appropriate value (`ubuntu-18.04`, or `flatcar` [note: flatcar is only supported on nodes via `agentPoolProfile`]). When using `imageReference` with Shared Image Galleries, provide an image name and version, as well as the resource group, subscription, and name of the gallery. Example:
```json
{

Просмотреть файл

@ -18,7 +18,7 @@ A valid SSH private key is always required to stablish a SSH session to the clus
### Log Collection Scripts
To collect Linux nodes logs, specify the path to the script-to-execute on each node by setting [parameter](#Parameters) `--linux-script` if the node distro is not `aks-ubuntu`. A sample script can be found [here](/scripts/collect-logs.sh).
To collect Linux nodes logs, specify the path to the script-to-execute on each node by setting [parameter](#Parameters) `--linux-script` if the node distro is not `aks-ubuntu-18.04`. A sample script can be found [here](/scripts/collect-logs.sh).
To collect Windows nodes logs, specify the path to the script-to-execute on each node by setting [parameter](#Parameters) `--windows-script` if the node distro is not `aks-windows`. A sample script can be found [here](/scripts/collect-windows-logs.ps1).
@ -60,7 +60,7 @@ $ aks-engine get-logs \
|--api-model|yes|Path to the generated API model for the cluster.|
|--ssh-host|yes|FQDN, or IP address, of an SSH listener that can reach all nodes in the cluster.|
|--linux-ssh-private-key|yes|Path to a SSH private key that can be use to create a remote session on the cluster Linux nodes.|
|--linux-script|no|Custom log collection bash script. Required only when the Linux node distro is not `aks-ubuntu`. The script should produce file `/tmp/logs.zip`.|
|--linux-script|no|Custom log collection bash script. Required only when the Linux node distro is not `aks-ubuntu-18.04`. The script should produce file `/tmp/logs.zip`.|
|--windows-script|no|Custom log collection powershell script. Required only when the Windows node distro is not `aks-windows`. The script should produce file `%TEMP%\{NodeName}.zip`.|
|--output-directory|no|Output directory, derived from `--api-model` if missing.|
|--control-plane-only|no|Only collect logs from master nodes.|

Просмотреть файл

@ -15,7 +15,7 @@
},
"masterProfile": {
"dnsPrefix": "",
"distro": "ubuntu",
"distro": "ubuntu-18.04",
"count": 3,
"vmSize": "Standard_D2_v2"
},
@ -24,7 +24,7 @@
"name": "linuxpool",
"count": 3,
"vmSize": "Standard_D2_v2",
"distro": "ubuntu",
"distro": "ubuntu-18.04",
"availabilityProfile": "AvailabilitySet",
"AcceleratedNetworkingEnabled": false
}

Просмотреть файл

@ -15,7 +15,7 @@
},
"masterProfile": {
"dnsPrefix": "",
"distro": "ubuntu",
"distro": "ubuntu-18.04",
"count": 3,
"vmSize": "Standard_D2_v2"
},
@ -24,7 +24,7 @@
"name": "linuxpool",
"count": 3,
"vmSize": "Standard_D2_v2",
"distro": "ubuntu",
"distro": "ubuntu-18.04",
"availabilityProfile": "AvailabilitySet",
"AcceleratedNetworkingEnabled": false
}

Просмотреть файл

@ -15,7 +15,7 @@
},
"masterProfile": {
"dnsPrefix": "",
"distro": "ubuntu",
"distro": "ubuntu-18.04",
"count": 3,
"vmSize": "Standard_D2_v2"
},
@ -24,7 +24,7 @@
"name": "linuxpool",
"count": 3,
"vmSize": "Standard_D2_v2",
"distro": "ubuntu",
"distro": "ubuntu-18.04",
"availabilityProfile": "AvailabilitySet",
"AcceleratedNetworkingEnabled": false
}

Просмотреть файл

@ -15,7 +15,7 @@
},
"masterProfile": {
"dnsPrefix": "",
"distro": "ubuntu",
"distro": "ubuntu-18.04",
"count": 3,
"vmSize": "Standard_D2_v2"
},
@ -24,7 +24,7 @@
"name": "linuxpool",
"count": 3,
"vmSize": "Standard_D2_v2",
"distro": "ubuntu",
"distro": "ubuntu-18.04",
"availabilityProfile": "AvailabilitySet",
"AcceleratedNetworkingEnabled": false
}

Просмотреть файл

@ -81,13 +81,6 @@
"distro": "aks-ubuntu-16.04",
"availabilityProfile": "VirtualMachineScaleSets"
},
{
"name": "pool1604",
"count": 1,
"vmSize": "Standard_D2_v3",
"distro": "ubuntu",
"availabilityProfile": "VirtualMachineScaleSets"
},
{
"name": "pool1804",
"count": 1,
@ -120,4 +113,4 @@
"enableAutomaticUpdates": false
}
}
}
}

Просмотреть файл

@ -88,14 +88,6 @@
"availabilityProfile": "VirtualMachineScaleSets",
"vnetSubnetId": "/subscriptions/SUB_ID/resourceGroups/RG_NAME/providers/Microsoft.Network/virtualNetworks/VNET_NAME/subnets/SUBNET_NAME"
},
{
"name": "pool1604",
"count": 1,
"vmSize": "Standard_D2_v3",
"distro": "ubuntu",
"availabilityProfile": "VirtualMachineScaleSets",
"vnetSubnetId": "/subscriptions/SUB_ID/resourceGroups/RG_NAME/providers/Microsoft.Network/virtualNetworks/VNET_NAME/subnets/SUBNET_NAME"
},
{
"name": "pool1804",
"count": 1,

Просмотреть файл

@ -17,7 +17,7 @@
"count": 2,
"vmSize": "Standard_D2_v3",
"availabilityProfile": "AvailabilitySet",
"distro": "ubuntu"
"distro": "ubuntu-18.04"
},
{
"name": "flatcarpool",
@ -32,12 +32,6 @@
"vmSize": "Standard_D2_v3",
"availabilityProfile": "AvailabilitySet",
"osType": "Windows"
},
{
"name": "ubuntupool2",
"count": 1,
"vmSize": "Standard_D2_v3",
"availabilityProfile": "AvailabilitySet"
}
],
"windowsProfile": {

Просмотреть файл

@ -5,15 +5,9 @@
"count": 1,
"dnsPrefix": "",
"vmSize": "Standard_D2_v3",
"distro": "ubuntu"
"distro": "ubuntu-18.04"
},
"agentPoolProfiles": [
{
"name": "pool1604",
"count": 1,
"vmSize": "Standard_D2_v3",
"distro": "ubuntu"
},
{
"name": "pool1804",
"count": 1,

Просмотреть файл

@ -1,34 +0,0 @@
{
"apiVersion": "vlabs",
"properties": {
"orchestratorProfile": {
"kubernetesConfig": {
"networkPlugin": "kubenet"
}
},
"masterProfile": {
"count": 1,
"dnsPrefix": "",
"vmSize": "Standard_D2_v3",
"distro": "aks-ubuntu-16.04"
},
"agentPoolProfiles": [
{
"name": "agentpool1",
"count": 2,
"vmSize": "Standard_D2_v3",
"distro": "aks-ubuntu-16.04"
}
],
"linuxProfile": {
"adminUsername": "azureuser",
"ssh": {
"publicKeys": [
{
"keyData": ""
}
]
}
}
}
}

Просмотреть файл

@ -17,7 +17,7 @@ const (
// Distro string consts
const (
Ubuntu Distro = "ubuntu"
Ubuntu Distro = "ubuntu" // Ubuntu 16.04-LTS is at EOL, TODO deprecate this distro
Ubuntu1804 Distro = "ubuntu-18.04"
Ubuntu1804Gen2 Distro = "ubuntu-18.04-gen2"
Flatcar Distro = "flatcar"

Просмотреть файл

@ -22,7 +22,7 @@ const (
// the LinuxDistros supported by vlabs
const (
Ubuntu Distro = "ubuntu"
Ubuntu Distro = "ubuntu" // Ubuntu 16.04-LTS is at EOL, TODO deprecate this distro
Ubuntu1804 Distro = "ubuntu-18.04"
Ubuntu1804Gen2 Distro = "ubuntu-18.04-gen2"
Flatcar Distro = "flatcar"

Просмотреть файл

@ -1815,12 +1815,17 @@ func validateContainerdVersion(containerdVersion string) error {
// Check that distro has a valid value
func validateDistro(distro Distro, distroValues []Distro) bool {
var ret bool
for _, d := range distroValues {
if distro == d {
return true
ret = true
}
}
return false
switch distro {
case AKSUbuntu1604, Ubuntu:
log.Warnf("The '%s' distro uses Ubuntu 16.04-LTS, which is End of Life (EOL) and will no longer receive security updates", distro)
}
return ret
}
func (i *ImageReference) validateImageNameAndGroup() error {

Просмотреть файл

@ -869,6 +869,20 @@ func Test_Properties_ValidateDistro(t *testing.T) {
}
}
func ExamplevalidateDistro() {
log.SetOutput(os.Stdout)
log.SetFormatter(&log.TextFormatter{
DisableColors: true,
DisableTimestamp: true,
})
_ = validateDistro(Ubuntu, DistroValues)
_ = validateDistro(AKSUbuntu1604, DistroValues)
// Output:
// level=warning msg="The 'ubuntu' distro uses Ubuntu 16.04-LTS, which is End of Life (EOL) and will no longer receive security updates"
// level=warning msg="The 'aks-ubuntu-16.04' distro uses Ubuntu 16.04-LTS, which is End of Life (EOL) and will no longer receive security updates"
}
func Test_Properties_ValidateNetworkPolicy(t *testing.T) {
p := &Properties{}
p.OrchestratorProfile = &OrchestratorProfile{}

Просмотреть файл

@ -35,7 +35,7 @@
},
"masterProfile": {
"dnsPrefix": "k111007",
"distro": "ubuntu",
"distro": "ubuntu-18.04",
"osDiskSizeGB": 200,
"count": 3,
"vmSize": "Standard_D2_v2"
@ -46,7 +46,7 @@
"osDiskSizeGB": 200,
"count": 3,
"vmSize": "Standard_D2_v2",
"distro": "ubuntu",
"distro": "ubuntu-18.04",
"availabilityProfile": "AvailabilitySet",
"AcceleratedNetworkingEnabled": false
},

Просмотреть файл

@ -46,7 +46,7 @@
},
"masterProfile": {
"dnsPrefix": "k111007",
"distro": "ubuntu",
"distro": "ubuntu-18.04",
"osDiskSizeGB": 200,
"count": 3,
"availabilityProfile": "AvailabilitySet",
@ -58,7 +58,7 @@
"osDiskSizeGB": 200,
"count": 3,
"vmSize": "Standard_D2_v2",
"distro": "ubuntu",
"distro": "ubuntu-18.04",
"availabilityProfile": "AvailabilitySet",
"AcceleratedNetworkingEnabled": false
},

Просмотреть файл

@ -12,13 +12,6 @@
"vmSize": "Standard_D2_v3"
},
"agentPoolProfiles": [
{
"name": "pool1604vhd",
"count": 1,
"vmSize": "Standard_D2_v3",
"availabilityProfile": "VirtualMachineScaleSets",
"distro": "aks-ubuntu-16.04"
},
{
"name": "pool1804vhd",
"count": 1,

Просмотреть файл

@ -12,13 +12,6 @@
"vmSize": "Standard_D2_v3"
},
"agentPoolProfiles": [
{
"name": "pool1604vhd",
"count": 1,
"vmSize": "Standard_D2_v3",
"availabilityProfile": "VirtualMachineScaleSets",
"distro": "aks-ubuntu-16.04"
},
{
"name": "pool1804vhd",
"count": 1,