155 lines
5.3 KiB
PowerShell
155 lines
5.3 KiB
PowerShell
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSUseDeclaredVarsMoreThanAssignments', '')]
|
|
param()
|
|
|
|
[HashTable[]]$installedChocolateyPackages = @();
|
|
[HashTable[]]$chocolateySources = @();
|
|
|
|
# Microservice Tiers
|
|
$_MicroserviceTiers = @( @(
|
|
"Alkami.Services.Subscriptions.Host",
|
|
"Alkami.MicroServices.Broker.Host"
|
|
), @(
|
|
"Alkami.MicroServices.Forms.Service.Host",
|
|
"Alkami.MicroServices.Authorization.Service.Host",
|
|
"Alkami.MicroServices.Security.Service.Host",
|
|
"Alkami.MicroServices.UserInterface.Service.Host",
|
|
"Alkami.MicroServices.Audit.Service.Host",
|
|
"Alkami.MicroServices.Contacts.Service.Host",
|
|
"Alkami.MicroServices.Holidays.Service.Host",
|
|
"Alkami.MicroServices.Images.Service.Host",
|
|
"Alkami.MicroServices.Notifications.Service.Host",
|
|
"Alkami.MicroServices.Settings.Service.Host",
|
|
"Alkami.MicroServices.SiteText.Service.Host",
|
|
"Alkami.MicroServices.Transactions.Service.Host",
|
|
"Alkami.MicroServices.EventManagement.Service.Host",
|
|
"Alkami.MS.DataEngineSettings.Service.Host",
|
|
"Alkami.MS.MessageSubscriptions.Host"
|
|
)
|
|
);
|
|
|
|
# Define infrastructure microservices that must be running on each server.
|
|
$_InfrastructureMicroservices = @(
|
|
"Alkami.Services.Subscriptions.Host",
|
|
"Alkami.MicroServices.Broker.Host",
|
|
"Alkami.MicroServices.Features.Beacon.Host",
|
|
"newrelic-dotnet"
|
|
)
|
|
|
|
# Define microservices that need to run on every single FAB server.
|
|
# This is different from infrastructure microservices because they are not deployed to web/app servers.
|
|
$_FullScaleMicroservicesAllowList = @(
|
|
"Alkami.MicroServices.Authorization.Service.Host",
|
|
"Alkami.MicroServices.Accounts.Service.Host",
|
|
"Alkami.MicroServices.Transactions.Service.Host",
|
|
"Alkami.MicroServices.Security.Service.Host",
|
|
"Alkami.MicroServices.Settings.Service.Host"
|
|
)
|
|
$_FullScaleMicroservicesAllowList += $_InfrastructureMicroServices
|
|
|
|
# Defines packages to be summarily considered microservices.
|
|
$_MicroserviceAllowList = @(
|
|
"*.MicroServices.*",
|
|
"*.MS.*",
|
|
"*.MicroService.*",
|
|
"*.Services.*",
|
|
"fake.Alkami.MicroServices.SymConnectMultiplexer.Service.Host"
|
|
)
|
|
|
|
# Defines packages to be excluded from microservices.
|
|
$_MicroserviceDenyList = @()
|
|
|
|
# Define packages to be summarily considered Web Tier packages.
|
|
$_WebAllowList = @(
|
|
"Alkami.OpenSource.License.Listing",
|
|
"Alkami.Utilities.WebToolKit.Snippets.Runtime",
|
|
"DS.Repository.Common",
|
|
"DS.Repository.MicroserviceClient",
|
|
"DSFCU.MessageRepository.Implementation",
|
|
"DS.CopyRequest.Widget",
|
|
"Patelco.Widget.OpenAccountLegacy"
|
|
)
|
|
|
|
# Define packages to be summarily considered App Tier packages.
|
|
$_AppAllowList = @(
|
|
"Alkami.CoreDashboard",
|
|
"Alkami.Security.RPSTS",
|
|
"Alkami.VisaAuthorizationsConverter",
|
|
"Alkami.App.Providers.Core.ESB.OCCU",
|
|
"Alkami.App.Providers.eStatements.SandiaLabs",
|
|
"Alkami.App.Providers.eStatements.SandiaLabsSso",
|
|
"Achieva.App.Provider.Rewards",
|
|
"Alkami.App.Providers.SymConnectMultiplexer",
|
|
"Alkami.Utilities.NagViewer",
|
|
"Alkami.Console.Dynamodb.Migrater",
|
|
"Alkami.MicroServiceTester",
|
|
"Alkami.Tools.Deconversion",
|
|
"Alkami.Broker.Testing.Console"
|
|
)
|
|
|
|
# Define packages to be placed on the App Tier in FAB Environments Only
|
|
$_AppAllowListFabOnly = @(
|
|
"*Sym*",
|
|
"Alkami.MicroServices.RemoteDepositProviders.ProfitStars.Onus.Service.Host"
|
|
)
|
|
|
|
# Define nuspec tags for Web Tier packages.
|
|
$_WebNuspecTags = @("Widget","AdminWidget","Admin","WebApplication","WebExtension", "Repository", "Module", "Modules", "Website", "Snippet");
|
|
|
|
# Define nuspec tags for App Tier packages.
|
|
$_AppNuspecTags = @("Provider","FileProcessing");
|
|
|
|
# Define installer packages that must be installed prior to other packages.
|
|
$_InstallerPackages = @(
|
|
"*Choco.Installer*",
|
|
"*Alkami.Installer*",
|
|
"Alkami.TI.TechnicalImplementations",
|
|
"chocolatey",
|
|
"Carbon",
|
|
"Pester"
|
|
)
|
|
|
|
# Define PowerShell module/cmdlet packages.
|
|
$_PowerShellModulePackages = @(
|
|
"Alkami.PowerShell.*",
|
|
"Alkami.DevOps.*",
|
|
"Alkami.Ops.*",
|
|
"SRE.MigrationUtility"
|
|
)
|
|
|
|
# Define packages that must only be installed in upgrade-mode.
|
|
$_UpgradePackages = @(
|
|
"chocolatey",
|
|
"Carbon",
|
|
"debugdiagnostic",
|
|
"Pester",
|
|
"Alkami.Installer.*",
|
|
"Alkami.PowerShell.*",
|
|
"Alkami.DevOps.*",
|
|
"Alkami.Ops.*",
|
|
"Alkami.CoreDashboard",
|
|
"Alkami.EagleEye",
|
|
"newrelic-dotnet"
|
|
)
|
|
|
|
# Define package dependencies that signify database usage / dbms user requirements.
|
|
$_DbmsDependencies = @(
|
|
"Alkami.MicroServices.Choco.Installer.Database",
|
|
"Alkami.MicroServices.Choco.Installer.MasterDatabase"
|
|
)
|
|
|
|
# Define package dependencies that signify that a package is a microservice.
|
|
$_MicroDependencies = @(
|
|
"Alkami.MicroServices.Choco.Installer.Logic",
|
|
"Alkami.MicroServices.Choco.Installer.Database",
|
|
"Alkami.MicroServices.Choco.Installer.MasterDatabase"
|
|
)
|
|
|
|
# "Legacy" WebApplications - these need to sort higher than others in the same tier
|
|
# because they live in `Get-OrbPath` and other packages might try to install into
|
|
# one of their subfolders; these packages need to install prior to others
|
|
# in the same tier
|
|
$_ComponentizedWebApplications = @(
|
|
"Alkami.Security.RPSTS",
|
|
"Alkami.App.Service.Scheduler.Host",
|
|
"Alkami.App.Providers.SymConnectMultiplexer"
|
|
) |