From 7fcccb4602dcea7482bef84466242f0903724ba3 Mon Sep 17 00:00:00 2001 From: t-chappl <50643705+t-chappl@users.noreply.github.com> Date: Mon, 1 Jul 2019 15:26:18 -0700 Subject: [PATCH] feat: set ipam environment to mas in Azure CNI config on Azure Stack (#1542) * feat: set ipam environment to mas in Azure CNI config on Azure Stack * regenerate files * fix weird generated template change --- parts/k8s/cloud-init/artifacts/cse_config.sh | 6 ++++++ parts/k8s/kuberneteswindowssetup.ps1 | 3 ++- parts/k8s/windowsazurecnifunc.ps1 | 8 +++++++- pkg/engine/templates_generated.go | 17 +++++++++++++++-- 4 files changed, 30 insertions(+), 4 deletions(-) diff --git a/parts/k8s/cloud-init/artifacts/cse_config.sh b/parts/k8s/cloud-init/artifacts/cse_config.sh index 857adf71e..b5bb5d229 100755 --- a/parts/k8s/cloud-init/artifacts/cse_config.sh +++ b/parts/k8s/cloud-init/artifacts/cse_config.sh @@ -229,6 +229,12 @@ configureCNI() { systemctl restart sys-fs-bpf.mount REBOOTREQUIRED=true fi + + if [[ "${TARGET_ENVIRONMENT,,}" == "${AZURE_STACK_ENV}" ]] && [[ "${NETWORK_PLUGIN}" = "azure" ]]; then + # set environment to mas when using Azure CNI on Azure Stack + # shellcheck disable=SC2002,SC2005 + echo $(cat "$CNI_CONFIG_DIR/10-azure.conflist" | jq '.plugins[0].ipam.environment = "mas"') > "$CNI_CONFIG_DIR/10-azure.conflist" + fi } configureCNIIPTables() { diff --git a/parts/k8s/kuberneteswindowssetup.ps1 b/parts/k8s/kuberneteswindowssetup.ps1 index 76604485f..db84e7a9e 100644 --- a/parts/k8s/kuberneteswindowssetup.ps1 +++ b/parts/k8s/kuberneteswindowssetup.ps1 @@ -237,7 +237,8 @@ try -KubeClusterCIDR $global:KubeClusterCIDR ` -MasterSubnet $global:MasterSubnet ` -KubeServiceCIDR $global:KubeServiceCIDR ` - -VNetCIDR $global:VNetCIDR + -VNetCIDR $global:VNetCIDR ` + -TargetEnvironment $TargetEnvironment } elseif ($global:NetworkPlugin -eq "kubenet") { Update-WinCNI -CNIPath $global:CNIPath Get-HnsPsm1 -HNSModule $global:HNSModule diff --git a/parts/k8s/windowsazurecnifunc.ps1 b/parts/k8s/windowsazurecnifunc.ps1 index db76ab7c3..6d082f876 100644 --- a/parts/k8s/windowsazurecnifunc.ps1 +++ b/parts/k8s/windowsazurecnifunc.ps1 @@ -67,7 +67,9 @@ Set-AzureCNIConfig [Parameter(Mandatory=$true)][string] $KubeServiceCIDR, [Parameter(Mandatory=$true)][string] - $VNetCIDR + $VNetCIDR, + [Parameter(Mandatory=$true)][string] + $TargetEnvironment ) # Fill in DNS information for kubernetes. $fileName = [Io.path]::Combine("$AzureCNIConfDir", "10-azure.conflist") @@ -79,5 +81,9 @@ Set-AzureCNIConfig $configJson.plugins.AdditionalArgs[1].Value.DestinationPrefix = $KubeServiceCIDR $configJson.plugins.AdditionalArgs[0].Value.ExceptionList += $VNetCIDR + if ($TargetEnvironment -ieq "AzureStackCloud") { + Add-Member -InputObject $configJson.plugins[0].ipam -MemberType NoteProperty -Name "environment" -Value "mas" + } + $configJson | ConvertTo-Json -depth 20 | Out-File -encoding ASCII -filepath $fileName } diff --git a/pkg/engine/templates_generated.go b/pkg/engine/templates_generated.go index b43529241..a9d50465d 100644 --- a/pkg/engine/templates_generated.go +++ b/pkg/engine/templates_generated.go @@ -11380,6 +11380,12 @@ configureCNI() { systemctl restart sys-fs-bpf.mount REBOOTREQUIRED=true fi + + if [[ "${TARGET_ENVIRONMENT,,}" == "${AZURE_STACK_ENV}" ]] && [[ "${NETWORK_PLUGIN}" = "azure" ]]; then + # set environment to mas when using Azure CNI on Azure Stack + # shellcheck disable=SC2002,SC2005 + echo $(cat "$CNI_CONFIG_DIR/10-azure.conflist" | jq '.plugins[0].ipam.environment = "mas"') > "$CNI_CONFIG_DIR/10-azure.conflist" + fi } configureCNIIPTables() { @@ -22002,7 +22008,8 @@ try -KubeClusterCIDR $global:KubeClusterCIDR ` + "`" + ` -MasterSubnet $global:MasterSubnet ` + "`" + ` -KubeServiceCIDR $global:KubeServiceCIDR ` + "`" + ` - -VNetCIDR $global:VNetCIDR + -VNetCIDR $global:VNetCIDR ` + "`" + ` + -TargetEnvironment $TargetEnvironment } elseif ($global:NetworkPlugin -eq "kubenet") { Update-WinCNI -CNIPath $global:CNIPath Get-HnsPsm1 -HNSModule $global:HNSModule @@ -22468,7 +22475,9 @@ Set-AzureCNIConfig [Parameter(Mandatory=$true)][string] $KubeServiceCIDR, [Parameter(Mandatory=$true)][string] - $VNetCIDR + $VNetCIDR, + [Parameter(Mandatory=$true)][string] + $TargetEnvironment ) # Fill in DNS information for kubernetes. $fileName = [Io.path]::Combine("$AzureCNIConfDir", "10-azure.conflist") @@ -22480,6 +22489,10 @@ Set-AzureCNIConfig $configJson.plugins.AdditionalArgs[1].Value.DestinationPrefix = $KubeServiceCIDR $configJson.plugins.AdditionalArgs[0].Value.ExceptionList += $VNetCIDR + if ($TargetEnvironment -ieq "AzureStackCloud") { + Add-Member -InputObject $configJson.plugins[0].ipam -MemberType NoteProperty -Name "environment" -Value "mas" + } + $configJson | ConvertTo-Json -depth 20 | Out-File -encoding ASCII -filepath $fileName } `)