Skip to content

Commit 38338b2

Browse files
authored
AMCS bug fix for Geneva (#1503)
1 parent b35483c commit 38338b2

File tree

4 files changed

+52
-29
lines changed

4 files changed

+52
-29
lines changed

kubernetes/windows/main.ps1

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -165,9 +165,9 @@ function Set-AMA3PEnvironmentVariables {
165165
Set-ProcessAndMachineEnvVariables "MCS_CUSTOM_RESOURCE_ID" $aksResourceId
166166
$domain = Get-LogAnalyticsWorkspaceDomain
167167
$cloud_environment = Get-ClusterCloudEnvironment($domain)
168-
$mcs_endpoint = Get-McsEndpoint($cloud_environment)
168+
$mcs_azure_resource_endpoint = Get-McsAzureResourceEndpoint($cloud_environment)
169169
$mcs_globalendpoint = Get-McsGlobalEndpoint($cloud_environment)
170-
Set-ProcessAndMachineEnvVariables "MCS_AZURE_RESOURCE_ENDPOINT" $mcs_endpoint
170+
Set-ProcessAndMachineEnvVariables "MCS_AZURE_RESOURCE_ENDPOINT" $mcs_azure_resource_endpoint
171171
Set-ProcessAndMachineEnvVariables "MCS_GLOBAL_ENDPOINT" $mcs_globalendpoint
172172
}
173173

@@ -263,19 +263,37 @@ function Get-LogAnalyticsWorkspaceDomain() {
263263
}
264264
}
265265

266+
function Get-McsAzureResourceEndpoint {
267+
param (
268+
[string]$cloud_environment
269+
)
270+
$mcs_azure_resource_endpoint = "https://monitor.azure.com/"
271+
if (![string]::IsNullOrEmpty($cloud_environment)) {
272+
switch ($cloud_environment.ToLower()) {
273+
"azurepubliccloud" { $mcs_azure_resource_endpoint = "https://monitor.azure.com/" }
274+
"azurechinacloud" { $mcs_azure_resource_endpoint = "https://monitor.azure.cn/" }
275+
"azureusgovernmentcloud" { $mcs_azure_resource_endpoint = "https://monitor.azure.us/" }
276+
"usnat" { $mcs_azure_resource_endpoint = "https://monitor.azure.eaglex.ic.gov/" }
277+
"ussec" { $mcs_azure_resource_endpoint = "https://monitor.azure.microsoft.scloud/" }
278+
"bleu" { $mcs_azure_resource_endpoint = "https://monitor.sovcloud-api.fr/" }
279+
}
280+
}
281+
return $mcs_azure_resource_endpoint
282+
}
283+
266284
function Get-McsEndpoint {
267285
param (
268286
[string]$cloud_environment
269287
)
270-
$mcs_endpoint = "https://monitor.azure.com/"
288+
$mcs_endpoint = "monitor.azure.com"
271289
if (![string]::IsNullOrEmpty($cloud_environment)) {
272290
switch ($cloud_environment.ToLower()) {
273-
"azurepubliccloud" { $mcs_endpoint = "https://monitor.azure.com/" }
274-
"azurechinacloud" { $mcs_endpoint = "https://monitor.azure.cn/" }
275-
"azureusgovernmentcloud" { $mcs_endpoint = "https://monitor.azure.us/" }
276-
"usnat" { $mcs_endpoint = "https://monitor.azure.eaglex.ic.gov/" }
277-
"ussec" { $mcs_endpoint = "https://monitor.azure.microsoft.scloud/" }
278-
"bleu" { $mcs_endpoint = "https://monitor.sovcloud-api.fr/" }
291+
"azurepubliccloud" { $mcs_endpoint = "monitor.azure.com" }
292+
"azurechinacloud" { $mcs_endpoint = "monitor.azure.cn" }
293+
"azureusgovernmentcloud" { $mcs_endpoint = "monitor.azure.us" }
294+
"usnat" { $mcs_endpoint = "monitor.azure.eaglex.ic.gov" }
295+
"ussec" { $mcs_endpoint = "monitor.azure.microsoft.scloud" }
296+
"bleu" { $mcs_endpoint = "monitor.sovcloud-api.fr" }
279297
}
280298
}
281299
return $mcs_endpoint

source/plugins/go/src/ingestion_token_utils.go

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ func getAccessTokenFromIMDS() (string, int64, error) {
154154
if useIMDSTokenProxyEndPoint != "" && strings.Compare(strings.ToLower(useIMDSTokenProxyEndPoint), "true") == 0 {
155155
Log("Info Reading IMDS Access Token from IMDS Token proxy endpoint")
156156
mcsEndpoint := os.Getenv("MCS_ENDPOINT")
157-
msi_endpoint_string := fmt.Sprintf("http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=%s", mcsEndpoint)
157+
msi_endpoint_string := fmt.Sprintf("http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://%s/", mcsEndpoint)
158158
var msi_endpoint *url.URL
159159
msi_endpoint, err := url.Parse(msi_endpoint_string)
160160
if err != nil {
@@ -332,8 +332,12 @@ func getAgentConfiguration(imdsAccessToken string) (configurationId string, chan
332332
osType := os.Getenv("OS_TYPE")
333333
resourceId := os.Getenv("AKS_RESOURCE_ID")
334334
resourceRegion := os.Getenv("AKS_REGION")
335-
AmcsEndpoint = os.Getenv("MCS_GLOBAL_ENDPOINT")
335+
mcsEndpoint := os.Getenv("MCS_ENDPOINT")
336336

337+
AmcsEndpoint = fmt.Sprintf("https://global.handler.control.%s", mcsEndpoint)
338+
if strings.Compare(strings.ToLower(resourceRegion), "eastus2euap") == 0 || strings.Compare(strings.ToLower(resourceRegion), "centraluseuap") == 0 {
339+
AmcsEndpoint = fmt.Sprintf("https://global.handler.canary.control.%s", mcsEndpoint)
340+
}
337341
if AMCSRedirectedEndpoint != "" {
338342
AmcsEndpoint = AMCSRedirectedEndpoint
339343
}
@@ -485,8 +489,9 @@ func getIngestionAuthToken(imdsAccessToken string, configurationId string, chann
485489
osType := os.Getenv("OS_TYPE")
486490
resourceId := os.Getenv("AKS_RESOURCE_ID")
487491
resourceRegion := os.Getenv("AKS_REGION")
488-
AmcsEndpoint = os.Getenv("MCS_GLOBAL_ENDPOINT")
492+
mcsEndpoint := os.Getenv("MCS_ENDPOINT")
489493

494+
AmcsEndpoint = fmt.Sprintf("https://global.handler.control.%s", mcsEndpoint)
490495
if AMCSRedirectedEndpoint != "" {
491496
AmcsEndpoint = AMCSRedirectedEndpoint
492497
}

test/unit-tests/test_cases/Test-GetMcsEndpoint.ps1

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,27 +8,27 @@ function Test-CloudEnvironments {
88
$testCases = @(
99
@{
1010
cloud = "azurepubliccloud"
11-
expected = "https://monitor.azure.com/"
11+
expected = "monitor.azure.com"
1212
},
1313
@{
1414
cloud = "azurechinacloud"
15-
expected = "https://monitor.azure.cn/"
15+
expected = "monitor.azure.cn"
1616
},
1717
@{
1818
cloud = "azureusgovernmentcloud"
19-
expected = "https://monitor.azure.us/"
19+
expected = "monitor.azure.us"
2020
},
2121
@{
2222
cloud = "usnat"
23-
expected = "https://monitor.azure.eaglex.ic.gov/"
23+
expected = "monitor.azure.eaglex.ic.gov"
2424
},
2525
@{
2626
cloud = "ussec"
27-
expected = "https://monitor.azure.microsoft.scloud/"
27+
expected = "monitor.azure.microsoft.scloud"
2828
},
2929
@{
3030
cloud = "bleu"
31-
expected = "https://monitor.sovcloud-api.fr/"
31+
expected = "monitor.sovcloud-api.fr"
3232
}
3333
)
3434

@@ -43,13 +43,13 @@ function Test-CloudEnvironments {
4343
function Test-DefaultEndpoint {
4444
Setup
4545
$result = Get-McsEndpoint -cloud_environment $null
46-
Assert-Equals "https://monitor.azure.com/" $result "(with null cloud environment)"
46+
Assert-Equals "monitor.azure.com" $result "(with null cloud environment)"
4747

4848
$result = Get-McsEndpoint -cloud_environment ""
49-
Assert-Equals "https://monitor.azure.com/" $result "(with empty cloud environment)"
49+
Assert-Equals "monitor.azure.com" $result "(with empty cloud environment)"
5050

5151
$result = Get-McsEndpoint -cloud_environment "invalid"
52-
Assert-Equals "https://monitor.azure.com/" $result "(with invalid cloud environment)"
52+
Assert-Equals "monitor.azure.com" $result "(with invalid cloud environment)"
5353
Teardown
5454
}
5555

@@ -63,7 +63,7 @@ function Test-CaseSensitivity {
6363
foreach ($cloud in $testCases) {
6464
Setup
6565
$result = Get-McsEndpoint -cloud_environment $cloud
66-
Assert-Equals "https://monitor.azure.com/" $result "(case sensitivity check for $cloud)"
66+
Assert-Equals "monitor.azure.com" $result "(case sensitivity check for $cloud)"
6767
Teardown
6868
}
6969
}

test/unit-tests/test_functions/Get-McsEndpoint.ps1

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@ function Get-McsEndpoint {
22
param (
33
[string]$cloud_environment
44
)
5-
$mcs_endpoint = "https://monitor.azure.com/"
5+
$mcs_endpoint = "monitor.azure.com"
66
if (![string]::IsNullOrEmpty($cloud_environment)) {
77
switch ($cloud_environment.ToLower()) {
8-
"azurepubliccloud" { $mcs_endpoint = "https://monitor.azure.com/" }
9-
"azurechinacloud" { $mcs_endpoint = "https://monitor.azure.cn/" }
10-
"azureusgovernmentcloud" { $mcs_endpoint = "https://monitor.azure.us/" }
11-
"usnat" { $mcs_endpoint = "https://monitor.azure.eaglex.ic.gov/" }
12-
"ussec" { $mcs_endpoint = "https://monitor.azure.microsoft.scloud/" }
13-
"bleu" { $mcs_endpoint = "https://monitor.sovcloud-api.fr/" }
8+
"azurepubliccloud" { $mcs_endpoint = "monitor.azure.com" }
9+
"azurechinacloud" { $mcs_endpoint = "monitor.azure.cn" }
10+
"azureusgovernmentcloud" { $mcs_endpoint = "monitor.azure.us" }
11+
"usnat" { $mcs_endpoint = "monitor.azure.eaglex.ic.gov" }
12+
"ussec" { $mcs_endpoint = "monitor.azure.microsoft.scloud" }
13+
"bleu" { $mcs_endpoint = "monitor.sovcloud-api.fr" }
1414
}
1515
}
1616
return $mcs_endpoint

0 commit comments

Comments
 (0)