51 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			PowerShell
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			PowerShell
		
	
	
	
	
	
Param(
 | 
						|
    [parameter(Mandatory=$true)][string]$resourceGroupName,
 | 
						|
    [parameter(Mandatory=$true)][string]$location,
 | 
						|
    [parameter(Mandatory=$true)][string]$serviceName,
 | 
						|
    [parameter(Mandatory=$true)][string]$dnsNamePrefix,
 | 
						|
    [parameter(Mandatory=$false)][string]$registryName,
 | 
						|
    [parameter(Mandatory=$true)][bool]$createAcr=$true,
 | 
						|
    [parameter(Mandatory=$false)][int]$nodeCount=3,
 | 
						|
    [parameter(Mandatory=$false)][string]$nodeVMSize="Standard_D2_v2",
 | 
						|
    [parameter(Mandatory=$false)][bool]$enableHttpApplicationAddon=$true,
 | 
						|
    [parameter(Mandatory=$false)][bool]$enableAzureMonitoring=$false,
 | 
						|
    [parameter(Mandatory=$false)][ValidateSet("VirtualMachineScaleSets","AvailabilitySet",IgnoreCase=$true)]$vmSetType="VirtualMachineScaleSets"
 | 
						|
)
 | 
						|
 | 
						|
# Create resource group
 | 
						|
Write-Host "Creating Azure Resource Group..." -ForegroundColor Yellow
 | 
						|
az group create --name=$resourceGroupName --location=$location
 | 
						|
 | 
						|
if ($createAcr -eq $true) {
 | 
						|
    # Create Azure Container Registry
 | 
						|
    if ([string]::IsNullOrEmpty($registryName)) {
 | 
						|
        $registryName=$serviceName
 | 
						|
    }
 | 
						|
    Write-Host "Creating Azure Container Registry named $registryName" -ForegroundColor Yellow
 | 
						|
    az acr create -n $registryName -g $resourceGroupName -l $location  --admin-enabled true --sku Basic
 | 
						|
}
 | 
						|
 | 
						|
# Create kubernetes cluster in AKS
 | 
						|
Write-Host "Creating AKS $resourceGroupName/$serviceName" -ForegroundColor Yellow
 | 
						|
az aks create --resource-group=$resourceGroupName --name=$serviceName --dns-name-prefix=$dnsNamePrefix --generate-ssh-keys --node-count=$nodeCount --node-vm-size=$nodeVMSize --vm-set-type $vmSetType
 | 
						|
 | 
						|
if ($enableHttpApplicationAddon) {
 | 
						|
    Write-Host "Enabling Http Application Routing in AKS $serviceName" -ForegroundColor Yellow
 | 
						|
    az aks enable-addons --resource-group $resourceGroupName --name $serviceName --addons http_application_routing
 | 
						|
}
 | 
						|
 | 
						|
if ($enableAzureMonitoring) {
 | 
						|
    Write-Host "Enabling Azure Monitoring in AKS $serviceName" -ForegroundColor Yellow
 | 
						|
    az aks enable-addons --resource-group $resourceGroupName --name $serviceName --addons monitoring
 | 
						|
}
 | 
						|
 | 
						|
# Retrieve kubernetes cluster configuration and save it under ~/.kube/config
 | 
						|
Write-Host "Getting Kubernetes config..." -ForegroundColor Yellow
 | 
						|
az aks get-credentials --resource-group=$resourceGroupName --name=$serviceName
 | 
						|
 | 
						|
if ($createAcr -eq $true) {
 | 
						|
    # Show ACR credentials
 | 
						|
    Write-Host "ACR $registryName credentials:" -ForegroundColor Yellow
 | 
						|
    az acr credential show -n $registryName
 | 
						|
}
 |