Containers/New-NavContainer2.ps1
function New-NavContainer2 { Param( [Parameter(Mandatory=$true)] [string]$ContainerName, [Parameter(Mandatory=$false)] [string]$ImageName, [Parameter(Mandatory=$false)] [PSCredential]$Credential, # Swtich to include CSide [Parameter(Mandatory=$false)] [switch] $includeCSide, # Optional additional parameters to use when creating the docker container [Parameter(Mandatory=$false)] [string[]] $AdditionalParams, [Parameter(Mandatory=$false)] [ValidateSet('Sandbox','OnPrem')] [string]$ContainerType = 'Sandbox', [Parameter(Mandatory=$false)] [string]$Version, [Parameter(Mandatory=$false)] [string]$Country, [Parameter(Mandatory=$false)] [ValidateSet('bcartifacts','bcinsider')] [string]$StorageAccount = 'bcartifacts', [Parameter(Mandatory=$false)] [switch]$SecondToLastMajor ) if ($null -eq $Credential) { $NewCredential = New-CredentialFromEnvironmentJson if ($NewCredential -eq $false) { $Credential = [PSCredential]::new('admin', (ConvertTo-SecureString 'P@ssword1' -AsPlainText -Force)) } else { $Credential = $NewCredential } } if ($ImageName.Contains('nav')) { $LicenceFile = (Get-TFSConfigKeyValue 'navLicenceFile') } else { $LicenceFile = (Get-TFSConfigKeyValue 'businessCentralLicenceFile') } $Params = @{ containerName = $ContainerName auth = 'NavUserPassword' licenseFile = $LicenceFile restart = 'no' shortcuts = 'None' } if (($null -eq $ImageName) -or ($null -ne $ContainerType)) { $ArtifactParams = @{ type = $ContainerType } if ($null -ne $Version) { $ArtifactParams.Add('version', $Version) } if ($null -ne $StorageAccount) { $ArtifactParams.Add('storageAccount', $StorageAccount) } if ($null -ne $Country) { $ArtifactParams.Add('country', $Country) } if ($StorageAccount -eq 'bcinsider') { $ArtifactParams.Add('sasToken', (Get-TFSConfigKeyValue -KeyName 'sasToken')) } if ($SecondToLastMajor.IsPresent) { $ArtifactParams.Add('select', 'SecondToLastMajor') } $ArtifactUrl = Get-BCArtifactUrl @ArtifactParams Write-Host "Using artifact url $ArtifactUrl" $Params.Add('artifactUrl', $ArtifactUrl) } if ($null -ne $AdditionalParams) { $Params.Add('additionalParameters', $AdditionalParams) } if ($null -ne $ImageName) { $Params.Add('imageName', $ImageName) } New-NavContainer @Params ` -accept_eula ` -accept_outdated ` -Credential $Credential ` -doNotExportObjectsToText ` -includeCSide:$includeCSide ` -updateHosts ` -alwaysPull ` -includeTestToolkit ` -includeTestLibrariesOnly ` -enableTaskScheduler:$false ` -isolation (Get-ContainerIsolation) } Export-ModuleMember -Function New-NavContainer2 |