43 lines
1.8 KiB
PowerShell
43 lines
1.8 KiB
PowerShell
|
function Get-MicroserviceNewRelicMapping {
|
||
|
<#
|
||
|
.SYNOPSIS
|
||
|
Determine which microservices should report to New Relic. Utilized by Classify-Packages.
|
||
|
|
||
|
.PARAMETER BuildCheckoutDirectory
|
||
|
Directory where the code is checked out by TC.
|
||
|
|
||
|
.PARAMETER PackageMetadata
|
||
|
Packages object to populate.
|
||
|
#>
|
||
|
|
||
|
[CmdletBinding()]
|
||
|
param(
|
||
|
$BuildCheckoutDirectory,
|
||
|
[PSObject]$PackageMetadata
|
||
|
)
|
||
|
# For each of the microservice packages, figure out if they will have new relic enabled or disabled.
|
||
|
# Build out the config checkout directory.
|
||
|
$configCheckoutDirectory = (Join-Path $BuildCheckoutDirectory "config-defaults")
|
||
|
|
||
|
if($PackageMetadata.DisableMicroserviceNewRelic) {
|
||
|
Write-Host "Now determining which microservices need New Relic Enabled/Disabled"
|
||
|
|
||
|
# Read in the package names to leave new-relic enabled for.
|
||
|
$newRelicServicePath = (Join-Path $configCheckoutDirectory "NewRelicMicroServices/NewRelicMicroServices.txt")
|
||
|
if(Test-Path $newRelicServicePath) {
|
||
|
$newRelicMicroservicesToLeaveEnabled = [array](Get-Content -Path $newRelicServicePath)
|
||
|
} else {
|
||
|
Write-Warning "Could not find NewRelicMicroServices.txt to leave new relic enabled. Assuming no microservices should have NewRelic enabled."
|
||
|
$newRelicMicroservicesToLeaveEnabled = $null;
|
||
|
}
|
||
|
foreach($package in $PackageMetadata.AppPackagesToInstall) {
|
||
|
if($package.IsMicroservice) {
|
||
|
$enableNewRelic = ($newRelicMicroservicesToLeaveEnabled -contains $package.Name)
|
||
|
Add-Member -InputObject $package -NotePropertyName "EnableNewRelic" -NotePropertyValue $enableNewRelic -Force
|
||
|
}
|
||
|
}
|
||
|
} else {
|
||
|
Write-Host "New Relic will be left enabled on microservices."
|
||
|
}
|
||
|
return $PackageMetadata
|
||
|
}
|