зеркало из https://github.com/Azure/logicapps.git
Update EnvironmentSetup.ps1
This commit is contained in:
Родитель
54ebc3688f
Коммит
75338fd400
|
@ -1 +1,212 @@
|
|||
|
||||
param (
|
||||
[string]$LOCATION,
|
||||
[string]$GROUP_NAME,
|
||||
[string]$SUBSCRIPTION,
|
||||
[string]$KUBE_CLUSTER_NAME,
|
||||
[string]$LOGANALYTICS_WORKSPACE_NAME
|
||||
)
|
||||
|
||||
$EXTENSION_NAME_ACA="logicapps-aca-extension"
|
||||
$NAMESPACE="logicapps-aca-ns"
|
||||
$CONNECTED_ENVIRONMENT_NAME="connected-environment-"+$KUBE_CLUSTER_NAME
|
||||
$CUSTOM_LOCATION_NAME="custom-location-"+$KUBE_CLUSTER_NAME
|
||||
|
||||
#Change the below value, if you would like to provide different name for your connected cluster
|
||||
$CONNECTED_CLUSTER_NAME= $KUBE_CLUSTER_NAME
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
|
||||
function Test-Administrator {
|
||||
$User = [Security.Principal.WindowsIdentity]::GetCurrent()
|
||||
return (New-Object Security.Principal.WindowsPrincipal $User).IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)
|
||||
}
|
||||
|
||||
if (-not (Test-Administrator)) {
|
||||
throw "Please run this script as an administrator"
|
||||
}
|
||||
|
||||
function Write-ColorOutput($ForegroundColor)
|
||||
{
|
||||
Write-Output ""
|
||||
# save the current color
|
||||
$fc = $host.UI.RawUI.ForegroundColor
|
||||
|
||||
# set the new color
|
||||
$host.UI.RawUI.ForegroundColor = $ForegroundColor
|
||||
|
||||
# output
|
||||
if ($args) {
|
||||
Write-Output $args
|
||||
}
|
||||
else {
|
||||
$input | Write-Output
|
||||
}
|
||||
|
||||
# restore the original color
|
||||
$host.UI.RawUI.ForegroundColor = $fc
|
||||
}
|
||||
|
||||
Write-ColorOutput green ("Preparing to login to your Azure account")
|
||||
|
||||
# Log into Azure
|
||||
az login
|
||||
|
||||
# Set Azure subscription
|
||||
Write-ColorOutput green ("using the subscription '$SUBSCRIPTION'.")
|
||||
az account set --subscription $SUBSCRIPTION
|
||||
|
||||
#Write-ColorOutput green ("creating or using the resource group '$GROUP_NAME'.")
|
||||
#az group create --name $GROUP_NAME --location $LOCATION
|
||||
|
||||
# installing kubectl
|
||||
Write-ColorOutput green ("installing kubectl")
|
||||
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
|
||||
choco install kubernetes-cli -y
|
||||
|
||||
|
||||
|
||||
Write-ColorOutput green ("Getting the AKS credentials for kubectl access")
|
||||
az aks get-credentials --resource-group $GROUP_NAME --name $KUBE_CLUSTER_NAME --admin
|
||||
|
||||
Write-ColorOutput green ("Merging the kubeconfig")
|
||||
kubectl get ns
|
||||
|
||||
# Install helm
|
||||
Write-ColorOutput green ("Installing helm.")
|
||||
choco install kubernetes-helm
|
||||
|
||||
# Install SMB driver
|
||||
Write-ColorOutput green ("Installing SMB CSI driver on the cluster.")
|
||||
helm repo add csi-driver-smb https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/charts
|
||||
helm install csi-driver-smb csi-driver-smb/csi-driver-smb --namespace kube-system --version v1.15.0
|
||||
|
||||
# Install Azurefile driver
|
||||
#Write-ColorOutput green ("Installing Azurefile CSI driver on the cluster.")
|
||||
#helm repo add azurefile-csi-driver https://raw.githubusercontent.com/kubernetes-sigs/azurefile-csi-driver/master/charts
|
||||
#helm install azurefile-csi-driver azurefile-csi-driver/azurefile-csi-driver --namespace kube-system --version v1.30.2
|
||||
|
||||
# add required cli extensions
|
||||
Write-ColorOutput green ("adding az extension connectedk8s")
|
||||
az extension add --name connectedk8s --upgrade --yes
|
||||
|
||||
Write-ColorOutput green ("adding az extension k8s-extension")
|
||||
az extension add --name k8s-extension --upgrade --yes
|
||||
|
||||
Write-ColorOutput green ("adding az extension customlocation")
|
||||
az extension add --name customlocation --upgrade --yes
|
||||
|
||||
Write-ColorOutput green ("adding az extension containerapp")
|
||||
az extension add --name containerapp --upgrade --yes
|
||||
|
||||
# register required providers
|
||||
|
||||
Write-ColorOutput green ("registering namespace Microsoft.Kubernetes")
|
||||
az provider register --namespace Microsoft.Kubernetes --wait
|
||||
|
||||
Write-ColorOutput green ("registering namespace Microsoft.ExtendedLocation")
|
||||
az provider register --namespace Microsoft.ExtendedLocation --wait
|
||||
|
||||
Write-ColorOutput green ("registering namespace Microsoft.KubernetesConfiguration")
|
||||
az provider register --namespace Microsoft.KubernetesConfiguration --wait
|
||||
|
||||
Write-ColorOutput green ("registering namespace Microsoft.App")
|
||||
az provider register --namespace Microsoft.App --wait
|
||||
|
||||
Write-ColorOutput green ("registering namespace Microsoft.OperationalInsights")
|
||||
az provider register --namespace Microsoft.OperationalInsights --wait
|
||||
|
||||
|
||||
# This script creates an Azure Arc resource to connect a Kubernetes cluster to Azure
|
||||
# Documentation: https://aka.ms/AzureArcK8sDocs
|
||||
|
||||
# Create connected cluster
|
||||
Write-ColorOutput green ("Creating or using connected cluster '$CONNECTED_CLUSTER_NAME'.")
|
||||
az connectedk8s connect --name $CONNECTED_CLUSTER_NAME --resource-group $GROUP_NAME --location $LOCATION
|
||||
|
||||
|
||||
# create log ananlytics workspace
|
||||
Write-ColorOutput green ("Creating or using log analytics workspace '$LOGANALYTICS_WORKSPACE_NAME'.")
|
||||
az monitor log-analytics workspace create `
|
||||
--resource-group $GROUP_NAME `
|
||||
--workspace-name $LOGANALYTICS_WORKSPACE_NAME
|
||||
|
||||
$LOG_ANALYTICS_WORKSPACE_ID=$(az monitor log-analytics workspace show `
|
||||
--resource-group $GROUP_NAME `
|
||||
--workspace-name $LOGANALYTICS_WORKSPACE_NAME `
|
||||
--query customerId `
|
||||
--output tsv)
|
||||
$LOG_ANALYTICS_WORKSPACE_ID_ENC=[Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($LOG_ANALYTICS_WORKSPACE_ID))# Needed for the next step
|
||||
$LOG_ANALYTICS_KEY=$(az monitor log-analytics workspace get-shared-keys `
|
||||
--resource-group $GROUP_NAME `
|
||||
--workspace-name $LOGANALYTICS_WORKSPACE_NAME `
|
||||
--query primarySharedKey `
|
||||
--output tsv)
|
||||
$LOG_ANALYTICS_KEY_ENC=[Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($LOG_ANALYTICS_KEY))
|
||||
|
||||
|
||||
# install ACA extension
|
||||
Write-ColorOutput green ("Start installing ACA extension under namespace '$NAMESPACE'.")
|
||||
az k8s-extension create `
|
||||
--resource-group $GROUP_NAME `
|
||||
--name $EXTENSION_NAME_ACA `
|
||||
--cluster-type connectedClusters `
|
||||
--cluster-name $CONNECTED_CLUSTER_NAME `
|
||||
--extension-type 'Microsoft.App.Environment' `
|
||||
--release-train stable `
|
||||
--auto-upgrade-minor-version true `
|
||||
--scope cluster `
|
||||
--release-namespace $NAMESPACE `
|
||||
--configuration-settings "Microsoft.CustomLocation.ServiceAccount=default" `
|
||||
--configuration-settings "appsNamespace=${NAMESPACE}" `
|
||||
--configuration-settings "clusterName=${CONNECTED_ENVIRONMENT_NAME}" `
|
||||
--configuration-settings "keda.enabled=true" `
|
||||
--configuration-settings "keda.logicAppsScaler.enabled=true" `
|
||||
--configuration-settings "keda.logicAppsScaler.replicaCount=1" `
|
||||
--configuration-settings "containerAppController.api.functionsServerEnabled=true" `
|
||||
--configuration-settings "functionsProxyApiConfig.enabled=true" `
|
||||
--configuration-settings "envoy.annotations.service.beta.kubernetes.io/azure-load-balancer-resource-group=${GROUP_NAME}" `
|
||||
--configuration-settings "logProcessor.appLogs.destination=log-analytics" `
|
||||
--configuration-protected-settings "logProcessor.appLogs.logAnalyticsConfig.customerId=${LOG_ANALYTICS_WORKSPACE_ID_ENC}" `
|
||||
--configuration-protected-settings "logProcessor.appLogs.logAnalyticsConfig.sharedKey=${LOG_ANALYTICS_KEY_ENC}" `
|
||||
--configuration-settings "logProcessor.appLogs.destination=log-analytics"
|
||||
|
||||
|
||||
|
||||
$EXTENSION_ID_ACA=$(az k8s-extension show `
|
||||
--cluster-type connectedClusters `
|
||||
--cluster-name $CONNECTED_CLUSTER_NAME `
|
||||
--resource-group $GROUP_NAME `
|
||||
--name $EXTENSION_NAME_ACA `
|
||||
--query id `
|
||||
--output tsv)
|
||||
|
||||
# Create Custom location
|
||||
$CUSTOM_LOCATION_NAME="custom-location-"+$GROUP_NAME
|
||||
$CONNECTED_CLUSTER_ID=$(az connectedk8s show --resource-group $GROUP_NAME --name $CONNECTED_CLUSTER_NAME --query id --output tsv)
|
||||
|
||||
Write-ColorOutput green ("Creating custom location '$CUSTOM_LOCATION_NAME'.")
|
||||
az customlocation create `
|
||||
--resource-group $GROUP_NAME `
|
||||
--name $CUSTOM_LOCATION_NAME `
|
||||
--host-resource-id $CONNECTED_CLUSTER_ID `
|
||||
--namespace $NAMESPACE `
|
||||
--cluster-extension-ids $EXTENSION_ID_ACA `
|
||||
--location $LOCATION
|
||||
|
||||
az customlocation show --resource-group $GROUP_NAME --name $CUSTOM_LOCATION_NAME
|
||||
|
||||
$CUSTOM_LOCATION_ID=$(az customlocation show `
|
||||
--resource-group $GROUP_NAME `
|
||||
--name $CUSTOM_LOCATION_NAME `
|
||||
--query id `
|
||||
--output tsv)
|
||||
|
||||
# create connected environment
|
||||
Write-ColorOutput green ("Creating connected environment '$CONNECTED_ENVIRONMENT_NAME'.")
|
||||
az containerapp connected-env create `
|
||||
--resource-group $GROUP_NAME `
|
||||
--name $CONNECTED_ENVIRONMENT_NAME `
|
||||
--custom-location $CUSTOM_LOCATION_ID `
|
||||
--location $LOCATION
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче