forked from oardevol/ftahybrid-aksbootcamp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript.ps
88 lines (73 loc) · 4.23 KB
/
script.ps
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
$subscriptionID="c83e41ff-0233-46b3-9bb1-826cd887b446"
$resourceGroup="oardevol-hybrid"
$location="westeurope"
$resourceName="oardevol-bridge"
$workDirectory="V:\AKS-HCI\"
$vswitchname="InternalNAT"
$ipaddressprefix="192.168.0.0/16"
$gateway="192.168.0.1"
$dnsservers="192.168.0.1"
$vmIP="192.168.0.200"
$controlPlaneIP="192.168.0.201"
# register providers
az provider register --namespace Microsoft.Kubernetes --wait
az provider register --namespace Microsoft.ExtendedLocation --wait
az provider register --namespace Microsoft.ResourceConnector --wait
az provider register --namespace Microsoft.HybridContainerService --wait
az provider register --namespace Microsoft.HybridConnectivity --wait
az extension add -n k8s-extension
az extension add -n customlocation
az extension add -n arcappliance --version 0.2.27
az extension add -n hybridaks
Install-Module -Name ArcHci -Force -Confirm:$false -SkipPublisherCheck -AcceptLicense
New-ArcHciAksConfigFiles -subscriptionID $subscriptionID -location $location -resourceGroup $resourceGroup `
-resourceName $resourceName -workDirectory $workDirectory -vnetName $vswitchname `
-vswitchName $vswitchName -ipaddressprefix $ipaddressprefix -gateway $gateway -dnsservers $dnsservers `
-controlPlaneIP $controlPlaneIP -k8snodeippoolstart $vmIP -k8snodeippoolend $vmIP
$configfile = $workDirectory+"\hci-appliance.yaml"
$appliancekubeconfig = $workDirectory+"\applianceconfig"
az arcappliance validate hci --config-file $configfile
az arcappliance prepare hci --config-file $configfile
az arcappliance deploy hci --config-file $configfile --outfile $appliancekubeconfig
az arcappliance create hci --config-file $configfile --kubeconfig $appliancekubeconfig
# Wait until connected
az arcappliance show --resource-group $resourceGroup --name $resourceName --query "status" -o tsv
# Install aks extension
$extensionName=$resourceName+"-ext"
az k8s-extension create --resource-group $resourceGroup --cluster-name $resourceName --cluster-type appliances `
--name $extensionName --extension-type Microsoft.HybridAKSOperator `
--config Microsoft.CustomLocation.ServiceAccount="default"
# Wait for succeeded
az k8s-extension show --resource-group $resourceGroup --cluster-name $resourceName --cluster-type appliances `
--name $extensionName --query "provisioningState" -o tsv
# Create custom location
$ArcResourceBridgeId=az arcappliance show --resource-group $resourceGroup --name $resourceName --query id -o tsv
$AKSClusterExtensionResourceId=az k8s-extension show --resource-group $resourceGroup --cluster-name $resourceName `
--cluster-type appliances --name $extensionName --query id -o tsv
$customLocationName=$resourceName
az customlocation create --name $customLocationName --namespace "default" --host-resource-id $ArcResourceBridgeId --cluster-extension-ids $AKSClusterExtensionResourceId --resource-group $resourceGroup
# Wait for succeeded
az customlocation show --name $customLocationName --resource-group $resourceGroup --query "provisioningState" -o tsv
$customlocationID=az customlocation show --name $customLocationName --resource-group $resourceGroup --query "id" -o tsv
# Create AKS cluster
$clustervnetname = "oriol-bridge-vnet-01"
$vswitchname="InternalNAT"
$ipaddressprefix="192.168.0.0/16"
$gateway="192.168.0.1"
$dnsservers="192.168.0.1"
$vmPoolStart="192.168.0.205"
$vmPoolEnd="192.168.0.215"
$vipPoolStart="192.168.0.216"
$vipPoolEnd="192.168.0.225"
# Create aks hybrid vnet
New-KvaVirtualNetwork -name $clustervnetname -vswitchname $vswitchname `
-ipaddressprefix $ipaddressprefix -gateway $gateway -dnsservers $dnsServers `
-vippoolstart $vipPoolStart -vippoolend $vipPoolEnd `
-k8snodeippoolstart $vmPoolStart -k8snodeippoolend $vmPoolEnd `
-kubeconfig $appliancekubeconfig
# Link aks hybrid vnet to Azure vnet
az hybridaks vnet create -n $clustervnetname -g $resourceGroup --custom-location $customlocationID --moc-vnet-name $clustervnetname
$vnetId=az hybridaks vnet show --name $clustervnetname --resource-group $resourceGroup --query "id" -o tsv
# Create aks cluster, alternatively, use portal
az hybridaks create -n "oardevol-hybrid-aks-01" -g $resourceGroup --custom-location $customlocationID --vnet-ids $vnetId `
--aad-admin-group-object-ids "59ed0a52-e018-4bcc-bdd5-ea81778405bf" --generate-ssh-keys