ps/Modules/Alkami.DevOps.Minikube/Public/Export-MinikubeDevDynamic.ps1

43 lines
1.7 KiB
PowerShell
Raw Normal View History

2023-05-30 22:51:22 -07:00
function Export-MinikubeDevDynamic {
<#
.SYNOPSIS
Exports the existing developer dynamic databases into their own container that is importable by someone else
.DESCRIPTION
Exports the existing developer dynamic databases into their own container that is importable by someone else
.EXAMPLE
Export-MinikubeDevDynamic
#>
[CmdletBinding()]
param()
$ErrorActionPreference = "Stop"
$logLead = (Get-LogLeadName)
$resourcesPath = Join-Path $PSScriptRoot "Resources"
Write-Host "$logLead : Updating kubectl context to minikube"
minikube update-context
Write-Host "$logLead : Exporting database in minikube"
$minikubeJson = docker inspect minikube
$minikubeContainerId = (ConvertFrom-Json -InputObject "$minikubeJson").Id
Write-Host "$logLead : Minikube container id: $minikubeContainerId"
docker cp ${minikubeContainerId}:/mnt/data "$PSScriptRoot"
Write-Host "$logLead : Building docker image with exported DB"
$exportDockerFilePath = "$resourcesPath\DatabaseExportDockerfile"
$guid = [guid]::NewGuid().toString()
$tag = "export-$env:UserName-$guid"
$localDockerImageName = "alkami.db.developerdynamic.export:$tag"
docker build -t "$localDockerImageName" -f $exportDockerFilePath "$PSScriptRoot"
Remove-Item -Recurse -Force "$PSScriptRoot\data"
Write-Host "$logLead : Successfully built $localDockerImageName. Pushing to proget"
$progetImage = "packagerepo.orb.alkamitech.com/alkami/library/alkami.db.developerdynamic:$tag"
docker tag "alkami.db.developerdynamic.export:$tag" "$progetImage"
docker push "$progetImage"
Write-Host "$logLead : Exported minikube database to: $progetImage"
}