From 01d9c0022cc58ffd0451954be24adf1b51955a8b Mon Sep 17 00:00:00 2001 From: Ganga Mahesh Siddem Date: Tue, 4 Aug 2020 00:48:34 -0700 Subject: [PATCH 1/9] onprem k8s script --- scripts/cluster-creation/onprem-k8s.sh | 54 ++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100755 scripts/cluster-creation/onprem-k8s.sh diff --git a/scripts/cluster-creation/onprem-k8s.sh b/scripts/cluster-creation/onprem-k8s.sh new file mode 100755 index 000000000..d8654c552 --- /dev/null +++ b/scripts/cluster-creation/onprem-k8s.sh @@ -0,0 +1,54 @@ +#!/bin/bash +set -e +TEMP_DIR=temp-$RANDOM +DEFAULT_ONPREM_K8S_CLUSTER="onprem-k8s-cluster-test" + +install-kind() +{ +sudo curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.8.1/kind-linux-amd64 +sudo chmod +x ./kind +sudo mv ./kind /usr/local/bin/kind +} + +create_cluster() +{ +sudo touch ~/${TEMP_DIR}/kind-config.yaml +sudo chmod 777~/${TEMP_DIR}/kind-config.yaml +cat >> kind-config.yaml < Date: Tue, 4 Aug 2020 09:44:11 -0700 Subject: [PATCH 2/9] script updates --- scripts/cluster-creation/aks-engine.sh | 157 +++++++++++++++++++++++++ scripts/cluster-creation/onprem-k8s.sh | 6 +- 2 files changed, 160 insertions(+), 3 deletions(-) create mode 100644 scripts/cluster-creation/aks-engine.sh diff --git a/scripts/cluster-creation/aks-engine.sh b/scripts/cluster-creation/aks-engine.sh new file mode 100644 index 000000000..0f2ca5641 --- /dev/null +++ b/scripts/cluster-creation/aks-engine.sh @@ -0,0 +1,157 @@ +#!/bin/bash +set -e +TEMP_DIR=temp-$RANDOM +DEFAULT_ONPREM_K8S_CLUSTER="aks-engine-k8s-test" + +download-aks-engine() +{ + sudo curl -LO https://github.com/Azure/aks-engine/releases/download/v0.54.0/aks-engine-v0.54.0-linux-amd64.tar.gz + sudo tar -xvf aks-engine-v0.54.0-linux-amd64.tar.gz + sudo mv aks-engine-v0.54.0-linux-amd64 aks-engine + sudo rm -rf /usr/local/aks-engine/ + sudo mv -f aks-engine /usr/local/ +} + + +usage() +{ + local basename=`basename $0` + echo + echo "Enable Azure Monitor for containers:" + echo "$basename deploy --subscription-id --client-id --client-secret --dns-prefix --location " +} + +parse_args() +{ + + if [ $# -le 1 ] + then + usage + exit 1 + fi + +# Transform long options to short ones +for arg in "$@"; do + shift + case "$arg" in + "--subscription-id") set -- "$@" "-s" ;; + "--client-id") set -- "$@" "-c" ;; + "--client-secret") set -- "$@" "-w" ;; + "--dns-prefix") set -- "$@" "-d" ;; + "--location") set -- "$@" "-l" ;; + "--"*) usage ;; + *) set -- "$@" "$arg" + esac +done + +local OPTIND opt + +while getopts 'hs:c:w:d:l:' opt; do + case "$opt" in + h) + usage + ;; + + s) + subscriptionId="$OPTARG" + echo "subscriptionId is $OPTARG" + ;; + + c) + clientId="$OPTARG" + echo "client-id is $OPTARG" + ;; + + w) + clientSecret="$OPTARG" + echo "clientSecret is $OPTARG" + ;; + + d) + dnsPrefix="$OPTARG" + echo "dnsPrefix is $OPTARG" + ;; + + l) + location="$OPTARG" + echo "location is $OPTARG" + ;; + + ?) + usage + exit 1 + ;; + esac + done + shift "$(($OPTIND -1))" + + +} +create_cluster() +{ + +sudo touch kubernetes.json +sudo chmod 777 kubernetes.json +cat >> kubernetes.json <> kind-config.yaml < Date: Tue, 4 Aug 2020 15:32:01 -0700 Subject: [PATCH 3/9] scripts for creating non-aks clusters --- scripts/cluster-creation/README.md | 39 ++++ scripts/cluster-creation/aks-engine.sh | 7 +- scripts/cluster-creation/arc-k8s-cluster.sh | 188 ++++++++++++++++++++ scripts/cluster-creation/aro-v4.sh | 143 +++++++++++++++ scripts/cluster-creation/onprem-k8s.sh | 60 +++++-- 5 files changed, 420 insertions(+), 17 deletions(-) create mode 100644 scripts/cluster-creation/README.md create mode 100644 scripts/cluster-creation/arc-k8s-cluster.sh create mode 100644 scripts/cluster-creation/aro-v4.sh diff --git a/scripts/cluster-creation/README.md b/scripts/cluster-creation/README.md new file mode 100644 index 000000000..f8a687c54 --- /dev/null +++ b/scripts/cluster-creation/README.md @@ -0,0 +1,39 @@ +# Instructions to create k8s clusters + +## On-Prem K8s Cluster + +on-prem k8s cluster can be created on any VM or physical machine using kind. + +``` +bash onprem-k8s.sh --cluster-name +``` + +## AKS-Engine cluster + +aks-engine is unmanaged cluster in azure and you can use below command to create the cluster in azure. + +``` + +# Either you can reuse existing service principal or create one with below instructions +sp=$(az ad sp create-for-rbac --role="Contributor" --scopes="/subscriptions/${subscriptionId}") +clientId=$(echo $sp | jq '.appId') +clientSecret=$(echo $sp | jq '.password') + +# create the aks-engine +bash aks-engine.sh --subscription-id --client-id --client-secret --dns-prefix --location ${location} +``` + +## ARO v4 Cluster + +Azure Redhat Openshift v4 cluster can be created with below command. + +``` +bash aro-v4.sh --subscription-id --resource-group --cluster-name --location +``` +## Azure Arc K8s cluster + +you can connect on-prem k8s cluster or unmanaged k8s cluster to azure through azure arc. + +``` +bash arc-k8s-cluster.sh --subscription-id --resource-group --cluster-name --location --kube-context +``` diff --git a/scripts/cluster-creation/aks-engine.sh b/scripts/cluster-creation/aks-engine.sh index 0f2ca5641..24aae9f69 100644 --- a/scripts/cluster-creation/aks-engine.sh +++ b/scripts/cluster-creation/aks-engine.sh @@ -17,7 +17,7 @@ usage() { local basename=`basename $0` echo - echo "Enable Azure Monitor for containers:" + echo "create aks-engine cluster:" echo "$basename deploy --subscription-id --client-id --client-secret --dns-prefix --location " } @@ -59,7 +59,7 @@ while getopts 'hs:c:w:d:l:' opt; do c) clientId="$OPTARG" - echo "client-id is $OPTARG" + echo "clientId is $OPTARG" ;; w) @@ -92,6 +92,7 @@ create_cluster() sudo touch kubernetes.json sudo chmod 777 kubernetes.json +# For docker runtime, remove kubernetesConfig block cat >> kubernetes.json < --resource-group --cluster-name --location --kube-context " +} + +parse_args() +{ + + if [ $# -le 1 ] + then + usage + exit 1 + fi + +# Transform long options to short ones +for arg in "$@"; do + shift + case "$arg" in + "--subscription-id") set -- "$@" "-s" ;; + "--resource-group") set -- "$@" "-r" ;; + "--cluster-name") set -- "$@" "-c" ;; + "--location") set -- "$@" "-l" ;; + "--kube-context") set -- "$@" "-k" ;; + "--"*) usage ;; + *) set -- "$@" "$arg" + esac +done + +local OPTIND opt + +while getopts 'hs:r:c:l:k:' opt; do + case "$opt" in + h) + usage + ;; + + s) + subscriptionId="$OPTARG" + echo "subscriptionId is $OPTARG" + ;; + + r) + resourceGroupName="$OPTARG" + echo "resourceGroupName is $OPTARG" + ;; + + c) + clusterName="$OPTARG" + echo "clusterName is $OPTARG" + ;; + + l) + location="$OPTARG" + echo "location is $OPTARG" + ;; + + k) + kubecontext="$OPTARG" + echo "kubecontext is $OPTARG" + ;; + + ?) + usage + exit 1 + ;; + esac + done + shift "$(($OPTIND -1))" + + +} + +connect_azure_arc_k8s() +{ + + echo "create resource group: ${resourceGroupName} if it doenst exist" + isrgExists=$(az group -g ${resourceGroupName}) + if $isrgExists; then + echo "resource group: ${resourceGroupName} already exists" + else + echo "creating resource group ${resourceGroupName} in region since it doesnt exist" + az group create -l ${location} -n ${resourceGroupName} + fi + + echo "connecting k8s cluster with kube-context : ${kubecontext} to azure with clustername: ${clusterName} and resourcegroup: ${resourceGroupName} ..." + az connectedk8s connect --name ${clusterName} --resource-group ${resourceGroupName} + echo "connecting k8s cluster with kube-context : ${kubecontext} to azure with clustername: ${clusterName} and resourcegroup: ${resourceGroupName} completed." +} + + + +echo "connecting k8s cluster to azure arc..." +cd ~ +echo "creating temp directory":$TEMP_DIR +sudo mkdir $TEMP_DIR && cd $TEMP_DIR + +echo "validate args" +parse_args $@ + +echo "set the ${DefaultCloud} for azure cli" +az cloud set -n $DefaultCloud + +echo "login to azure cli" +az login --use-device-code + +echo "set the subscription ${subscriptionId} for cli" +az account set -s $subscriptionId + +echo "installing helm client ..." +install-helm +echo "installing helm client completed." + +echo "installing azure cli ..." +download-and-install-azure-cli +echo "installing azure cli completed." + +echo "installing arc k8s extensions and pre-requisistes ..." +install_arc_k8s_prerequisites +echo "installing arc k8s extensions and pre-requisites completed." + +echo "connecting cluster to azure arc k8s via azure arc " +connect_azure_arc_k8s +echo "connecting cluster to azure arc k8s via azure arc completed." + +echo "connecting k8s cluster to azure arc completed." diff --git a/scripts/cluster-creation/aro-v4.sh b/scripts/cluster-creation/aro-v4.sh new file mode 100644 index 000000000..d59ab58d5 --- /dev/null +++ b/scripts/cluster-creation/aro-v4.sh @@ -0,0 +1,143 @@ +#!/bin/bash +set -e +TEMP_DIR=temp-$RANDOM +DefaultCloud="AzureCloud" +DefaultVnetName="aro-net" +DefaultMasterSubnetName="master-subnet" +DefaultWorkerSubnetName="worker-subnet" + +download-and-install-azure-cli() +{ + # https://docs.microsoft.com/en-us/cli/azure/install-azure-cli-apt?view=azure-cli-latest#install-with-one-command + sudo curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash +} + +register_aro_v4_provider() +{ + echo "register Microsoft.RedHatOpenShift provider" + az provider register -n Microsoft.RedHatOpenShift --wait +} + +usage() +{ + local basename=`basename $0` + echo + echo "create aro v4 cluster:" + echo "$basename --subscription-id --resource-group --cluster-name --location " +} + +parse_args() +{ + + if [ $# -le 1 ] + then + usage + exit 1 + fi + +# Transform long options to short ones +for arg in "$@"; do + shift + case "$arg" in + "--subscription-id") set -- "$@" "-s" ;; + "--resource-group") set -- "$@" "-r" ;; + "--cluster-name") set -- "$@" "-c" ;; + "--location") set -- "$@" "-l" ;; + "--"*) usage ;; + *) set -- "$@" "$arg" + esac +done + +local OPTIND opt + +while getopts 'hs:r:c:l:' opt; do + case "$opt" in + h) + usage + ;; + + s) + subscriptionId="$OPTARG" + echo "subscriptionId is $OPTARG" + ;; + + r) + resourceGroupName="$OPTARG" + echo "resourceGroupName is $OPTARG" + ;; + + c) + clusterName="$OPTARG" + echo "clusterName is $OPTARG" + ;; + + l) + location="$OPTARG" + echo "location is $OPTARG" + ;; + + ?) + usage + exit 1 + ;; + esac + done + shift "$(($OPTIND -1))" +} + +create_aro_v4_cluster() +{ + + echo "create resource group: ${resourceGroupName} if it doenst exist" + isrgExists=$(az group -g ${resourceGroupName}) + if $isrgExists; then + echo "resource group: ${resourceGroupName} already exists" + else + echo "creating resource group ${resourceGroupName} in region since it doesnt exist" + az group create -l ${location} -n ${resourceGroupName} + fi + + echo "creating virtual network" + az network vnet create --resource-group ${resourceGroupName} --name ${DefaultVnetName} --address-prefixes 10.0.0.0/22 + + echo "adding empty subnet for master nodes" + az network vnet subnet create --resource-group ${resourceGroupName} --vnet-name ${DefaultVnetName} --name ${DefaultMasterSubnetName} --address-prefixes 10.0.0.0/23 --service-endpoints Microsoft.ContainerRegistry + + echo "adding empty subnet for worker nodes" + az network vnet subnet create --resource-group ${resourceGroupName} --vnet-name ${DefaultVnetName} --name ${DefaultWorkerSubnetName} --address-prefixes 10.0.2.0/23 --service-endpoints Microsoft.ContainerRegistry + + echo "Disable subnet private endpoint policies on the master subnet" + az network vnet subnet update --name ${DefaultMasterSubnetName} --resource-group ${resourceGroupName} --vnet-name ${DefaultVnetName} --disable-private-link-service-network-policies true + + echo "creating ARO v4 cluster" + az aro create --resource-group ${resourceGroupName} --name ${clusterName} --vnet ${DefaultVnetName} --master-subnet ${DefaultMasterSubnetName} --worker-subnet ${DefaultWorkerSubnetName} + +} + + +echo "creating aro v4 cluster in specified azure subscription and resource group..." +cd ~ +echo "creating temp directory":$TEMP_DIR +sudo mkdir $TEMP_DIR && cd $TEMP_DIR + +echo "validate args" +parse_args $@ + +echo "set the ${DefaultCloud} for azure cli" +az cloud set -n $DefaultCloud + +echo "login to azure cli" +az login --use-device-code + +echo "set the subscription ${subscriptionId} for cli" +az account set -s $subscriptionId + +echo "installing azure cli ..." +download-and-install-azure-cli +echo "installing azure cli completed." + +echo "creating aro v4 cluster ..." +create_aro_v4_cluster +echo "creating aro v4 cluster completed." + +echo "creating aro v4 cluster in specified azure subscription and resource completed." diff --git a/scripts/cluster-creation/onprem-k8s.sh b/scripts/cluster-creation/onprem-k8s.sh index 866b0bd9d..8455f9d76 100755 --- a/scripts/cluster-creation/onprem-k8s.sh +++ b/scripts/cluster-creation/onprem-k8s.sh @@ -1,7 +1,6 @@ #!/bin/bash set -e TEMP_DIR=temp-$RANDOM -DEFAULT_ONPREM_K8S_CLUSTER="onprem-k8s-cluster-test" install-kind() { @@ -24,21 +23,54 @@ EOL sudo kind create cluster --config kind-config.yaml --name $ClusterName } +usage() +{ + local basename=`basename $0` + echo + echo "create kind k8 cluster:" + echo "$basename --cluster-name " +} -for ARGUMENT in "$@" -do - KEY=$(echo $ARGUMENT | cut -f1 -d=) - VALUE=$(echo $ARGUMENT | cut -f2 -d=) +parse_args() +{ - case "$KEY" in - ClusterName) ClusterName=$VALUE ;; - *) - esac + if [ $# -le 1 ] + then + usage + exit 1 + fi + +# Transform long options to short ones +for arg in "$@"; do + shift + case "$arg" in + "--cluster-name") set -- "$@" "-c" ;; + "--"*) usage ;; + *) set -- "$@" "$arg" + esac done -if [ -z $ClusterName ]; then - ClusterName=$DEFAULT_ONPREM_K8S_CLUSTER -fi +local OPTIND opt + +while getopts 'hc:' opt; do + case "$opt" in + h) + usage + ;; + + c) + clusterName="$OPTARG" + echo "clusterName is $OPTARG" + ;; + + ?) + usage + exit 1 + ;; + esac + done + shift "$(($OPTIND -1))" +} echo "creating kind k8 cluster ..." cd ~ @@ -48,7 +80,7 @@ sudo mkdir $TEMP_DIR && cd $TEMP_DIR echo "download and install kind" install-kind -echo "creating cluster: ${ClusterName}" +echo "creating cluster: ${clusterName}" create_cluster -echo "creating kind k8 cluster completed." \ No newline at end of file +echo "creating kind k8 cluster completed." From 0881eb5e3a4271f5b214cb630780068493b59414 Mon Sep 17 00:00:00 2001 From: Ganga Mahesh Siddem Date: Fri, 7 Aug 2020 09:34:03 -0700 Subject: [PATCH 4/9] fix minor text update --- scripts/cluster-creation/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/cluster-creation/README.md b/scripts/cluster-creation/README.md index f8a687c54..479f38c60 100644 --- a/scripts/cluster-creation/README.md +++ b/scripts/cluster-creation/README.md @@ -20,7 +20,7 @@ clientId=$(echo $sp | jq '.appId') clientSecret=$(echo $sp | jq '.password') # create the aks-engine -bash aks-engine.sh --subscription-id --client-id --client-secret --dns-prefix --location ${location} +bash aks-engine.sh --subscription-id --client-id --client-secret --dns-prefix --location ``` ## ARO v4 Cluster From a6798a7db513de8fb4dd3cf90bdfbef9dfd18c5f Mon Sep 17 00:00:00 2001 From: Ganga Mahesh Siddem Date: Tue, 11 Aug 2020 09:25:37 -0700 Subject: [PATCH 5/9] updates --- scripts/cluster-creation/README.md | 1 + scripts/cluster-creation/aks-engine.sh | 15 ++++++++------- scripts/cluster-creation/arc-k8s-cluster.sh | 6 ++++-- scripts/cluster-creation/onprem-k8s.sh | 4 +++- 4 files changed, 16 insertions(+), 10 deletions(-) diff --git a/scripts/cluster-creation/README.md b/scripts/cluster-creation/README.md index 479f38c60..7ac413cc4 100644 --- a/scripts/cluster-creation/README.md +++ b/scripts/cluster-creation/README.md @@ -15,6 +15,7 @@ aks-engine is unmanaged cluster in azure and you can use below command to create ``` # Either you can reuse existing service principal or create one with below instructions +subscriptionId="" sp=$(az ad sp create-for-rbac --role="Contributor" --scopes="/subscriptions/${subscriptionId}") clientId=$(echo $sp | jq '.appId') clientSecret=$(echo $sp | jq '.password') diff --git a/scripts/cluster-creation/aks-engine.sh b/scripts/cluster-creation/aks-engine.sh index 24aae9f69..49c23e52f 100644 --- a/scripts/cluster-creation/aks-engine.sh +++ b/scripts/cluster-creation/aks-engine.sh @@ -2,14 +2,14 @@ set -e TEMP_DIR=temp-$RANDOM DEFAULT_ONPREM_K8S_CLUSTER="aks-engine-k8s-test" +AKS_ENGINE_VERSION="v0.54.0" download-aks-engine() { - sudo curl -LO https://github.com/Azure/aks-engine/releases/download/v0.54.0/aks-engine-v0.54.0-linux-amd64.tar.gz - sudo tar -xvf aks-engine-v0.54.0-linux-amd64.tar.gz - sudo mv aks-engine-v0.54.0-linux-amd64 aks-engine - sudo rm -rf /usr/local/aks-engine/ - sudo mv -f aks-engine /usr/local/ + sudo curl -LO https://github.com/Azure/aks-engine/releases/download/${AKS_ENGINE_VERSION}/aks-engine-v0.54.0-linux-amd64.tar.gz + sudo tar -xvf aks-engine-${AKS_ENGINE_VERSION}-linux-amd64.tar.gz + sudo mv aks-engine-${AKS_ENGINE_VERSION}-linux-amd64 aks-engine + sudo mv -f aks-engine/aks-engine /usr/local/bin } @@ -141,7 +141,9 @@ echo "deploying of aks-engine cluster completed." } + echo "creating aks-engine k8s cluster ..." +echo "AKS-ENGINE version: ${AKS_ENGINE_VERSION}" cd ~ echo "creating temp directory":$TEMP_DIR sudo mkdir $TEMP_DIR && cd $TEMP_DIR @@ -154,5 +156,4 @@ download-aks-engine echo "creating cluster: ${ClusterName}" create_cluster - -echo "creating kind k8 cluster completed." +echo "creating aks-engine cluster completed." diff --git a/scripts/cluster-creation/arc-k8s-cluster.sh b/scripts/cluster-creation/arc-k8s-cluster.sh index 96f3256d7..3aeaf027a 100644 --- a/scripts/cluster-creation/arc-k8s-cluster.sh +++ b/scripts/cluster-creation/arc-k8s-cluster.sh @@ -2,11 +2,12 @@ set -e TEMP_DIR=temp-$RANDOM DefaultCloud="AzureCloud" +HELM_VERSION="v3.2.1" install-helm() { - sudo curl -LO https://get.helm.sh/helm-v3.2.1-linux-amd64.tar.gz - sudo tar -zxvf helm-v3.2.1-linux-amd64.tar.gz + sudo curl -LO https://get.helm.sh/helm-${HELM_VERSION}-linux-amd64.tar.gz + sudo tar -zxvf helm-${HELM_VERSION}-linux-amd64.tar.gz sudo rm -rf /usr/local/bin/helm sudo mv linux-amd64/helm /usr/local/bin/helm } @@ -153,6 +154,7 @@ connect_azure_arc_k8s() echo "connecting k8s cluster to azure arc..." +echo "HELM version: ${HELM_VERSION}" cd ~ echo "creating temp directory":$TEMP_DIR sudo mkdir $TEMP_DIR && cd $TEMP_DIR diff --git a/scripts/cluster-creation/onprem-k8s.sh b/scripts/cluster-creation/onprem-k8s.sh index 8455f9d76..2bf52bc8d 100755 --- a/scripts/cluster-creation/onprem-k8s.sh +++ b/scripts/cluster-creation/onprem-k8s.sh @@ -1,10 +1,11 @@ #!/bin/bash set -e TEMP_DIR=temp-$RANDOM +KIND_VERSION="v0.8.1" install-kind() { -sudo curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.8.1/kind-linux-amd64 +sudo curl -Lo ./kind https://kind.sigs.k8s.io/dl/${KIND_VERSION}/kind-linux-amd64 sudo chmod +x ./kind sudo mv ./kind /usr/local/bin/kind } @@ -73,6 +74,7 @@ while getopts 'hc:' opt; do } echo "creating kind k8 cluster ..." +echo "KIND version: ${KIND_VERSION}" cd ~ echo "creating temp directory":$TEMP_DIR sudo mkdir $TEMP_DIR && cd $TEMP_DIR From 31a9e6e0d7c428aaa768b0a21e21c983f851d986 Mon Sep 17 00:00:00 2001 From: Ganga Mahesh Siddem Date: Tue, 11 Aug 2020 16:24:47 -0700 Subject: [PATCH 6/9] script updates --- scripts/cluster-creation/README.md | 13 +++++++++---- scripts/cluster-creation/aks-engine.sh | 4 ++++ scripts/cluster-creation/arc-k8s-cluster.sh | 2 +- scripts/cluster-creation/aro-v4.sh | 5 ++++- 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/scripts/cluster-creation/README.md b/scripts/cluster-creation/README.md index 7ac413cc4..57d0c5dbf 100644 --- a/scripts/cluster-creation/README.md +++ b/scripts/cluster-creation/README.md @@ -16,25 +16,30 @@ aks-engine is unmanaged cluster in azure and you can use below command to create # Either you can reuse existing service principal or create one with below instructions subscriptionId="" +az account set -s ${subscriptionId} sp=$(az ad sp create-for-rbac --role="Contributor" --scopes="/subscriptions/${subscriptionId}") +# get the appId (i.e. clientid) and password (i.e. clientSecret) +echo $sp + clientId=$(echo $sp | jq '.appId') clientSecret=$(echo $sp | jq '.password') # create the aks-engine -bash aks-engine.sh --subscription-id --client-id --client-secret --dns-prefix --location +bash aks-engine.sh --subscription-id "" --client-id "" --client-secret "" --dns-prefix "" --location "" ``` ## ARO v4 Cluster Azure Redhat Openshift v4 cluster can be created with below command. +> Note: Because of the cleanup policy on internal subscriptions, cluster creation can fail if you dont change cleanup service to none on the subnets of aro vnet before creation. ``` -bash aro-v4.sh --subscription-id --resource-group --cluster-name --location +bash aro-v4.sh --subscription-id "" --resource-group "" --cluster-name "" --location "" ``` ## Azure Arc K8s cluster -you can connect on-prem k8s cluster or unmanaged k8s cluster to azure through azure arc. +you can connect on-prem k8s cluster or unmanaged k8s cluster such as aks-engine to azure through azure arc. ``` -bash arc-k8s-cluster.sh --subscription-id --resource-group --cluster-name --location --kube-context +bash arc-k8s-cluster.sh --subscription-id "" --resource-group "" --cluster-name "" --location "" --kube-context "" ``` diff --git a/scripts/cluster-creation/aks-engine.sh b/scripts/cluster-creation/aks-engine.sh index 49c23e52f..9d287ea07 100644 --- a/scripts/cluster-creation/aks-engine.sh +++ b/scripts/cluster-creation/aks-engine.sh @@ -157,3 +157,7 @@ download-aks-engine echo "creating cluster: ${ClusterName}" create_cluster echo "creating aks-engine cluster completed." + +echo "changing file permissions to access the kubeconfig" +sudo chmod -R 777 ~/${TEMP_DIR}/_output +echo "kubeconfig of this cluster should be under ~/${TEMP_DIR}/_output/${dnsPrefix}/kubeconfig" diff --git a/scripts/cluster-creation/arc-k8s-cluster.sh b/scripts/cluster-creation/arc-k8s-cluster.sh index 3aeaf027a..ee625a8b8 100644 --- a/scripts/cluster-creation/arc-k8s-cluster.sh +++ b/scripts/cluster-creation/arc-k8s-cluster.sh @@ -138,7 +138,7 @@ connect_azure_arc_k8s() { echo "create resource group: ${resourceGroupName} if it doenst exist" - isrgExists=$(az group -g ${resourceGroupName}) + isrgExists=$(az group exists -g ${resourceGroupName}) if $isrgExists; then echo "resource group: ${resourceGroupName} already exists" else diff --git a/scripts/cluster-creation/aro-v4.sh b/scripts/cluster-creation/aro-v4.sh index d59ab58d5..8540ae931 100644 --- a/scripts/cluster-creation/aro-v4.sh +++ b/scripts/cluster-creation/aro-v4.sh @@ -89,7 +89,7 @@ create_aro_v4_cluster() { echo "create resource group: ${resourceGroupName} if it doenst exist" - isrgExists=$(az group -g ${resourceGroupName}) + isrgExists=$(az group exists -g ${resourceGroupName}) if $isrgExists; then echo "resource group: ${resourceGroupName} already exists" else @@ -106,6 +106,9 @@ create_aro_v4_cluster() echo "adding empty subnet for worker nodes" az network vnet subnet create --resource-group ${resourceGroupName} --vnet-name ${DefaultVnetName} --name ${DefaultWorkerSubnetName} --address-prefixes 10.0.2.0/23 --service-endpoints Microsoft.ContainerRegistry + echo "Please make sure disable to diable cleanup service on subnet nsgs of aor vnet for internal subscriptions" + sleep 1m + echo "Disable subnet private endpoint policies on the master subnet" az network vnet subnet update --name ${DefaultMasterSubnetName} --resource-group ${resourceGroupName} --vnet-name ${DefaultVnetName} --disable-private-link-service-network-policies true From 96281586a1d4fb199175d1c5dc8b27bc3857557c Mon Sep 17 00:00:00 2001 From: Ganga Mahesh Siddem Date: Tue, 11 Aug 2020 18:30:53 -0700 Subject: [PATCH 7/9] fix --- scripts/cluster-creation/onprem-k8s.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/cluster-creation/onprem-k8s.sh b/scripts/cluster-creation/onprem-k8s.sh index 2bf52bc8d..0b3d04790 100755 --- a/scripts/cluster-creation/onprem-k8s.sh +++ b/scripts/cluster-creation/onprem-k8s.sh @@ -21,7 +21,7 @@ nodes: - role: control-plane - role: worker EOL -sudo kind create cluster --config kind-config.yaml --name $ClusterName +sudo kind create cluster --config kind-config.yaml --name $clusterName } usage() From 46926695183a8d35d017c67355eedc8fa05a6859 Mon Sep 17 00:00:00 2001 From: Ganga Mahesh Siddem Date: Tue, 11 Aug 2020 18:39:38 -0700 Subject: [PATCH 8/9] script updates --- scripts/cluster-creation/onprem-k8s.sh | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/scripts/cluster-creation/onprem-k8s.sh b/scripts/cluster-creation/onprem-k8s.sh index 0b3d04790..eeae9fa19 100755 --- a/scripts/cluster-creation/onprem-k8s.sh +++ b/scripts/cluster-creation/onprem-k8s.sh @@ -10,6 +10,14 @@ sudo chmod +x ./kind sudo mv ./kind /usr/local/bin/kind } +download_install_docker() +{ + echo "download docker script" + curl -fsSL https://get.docker.com -o get-docker.sh + echo "installing docker script" + sudo sh get-docker.sh +} + create_cluster() { sudo touch kind-config.yaml @@ -79,6 +87,12 @@ cd ~ echo "creating temp directory":$TEMP_DIR sudo mkdir $TEMP_DIR && cd $TEMP_DIR +echo "parsing args" +parse_args $@ + +echo "download and install docker" +download_install_docker + echo "download and install kind" install-kind From 2501315d5c20e54bee825a00f9a39656f5412034 Mon Sep 17 00:00:00 2001 From: Ganga Mahesh Siddem Date: Tue, 11 Aug 2020 18:53:45 -0700 Subject: [PATCH 9/9] fix scripts to install docker --- scripts/cluster-creation/onprem-k8s.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/scripts/cluster-creation/onprem-k8s.sh b/scripts/cluster-creation/onprem-k8s.sh index eeae9fa19..147681133 100755 --- a/scripts/cluster-creation/onprem-k8s.sh +++ b/scripts/cluster-creation/onprem-k8s.sh @@ -13,9 +13,13 @@ sudo mv ./kind /usr/local/bin/kind download_install_docker() { echo "download docker script" - curl -fsSL https://get.docker.com -o get-docker.sh + sudo curl -L https://get.docker.com/ -o get-docker.sh echo "installing docker script" sudo sh get-docker.sh + + echo "add user to docker group" + sudo usermod -aG docker $USER + } create_cluster()