ps/Modules/Alkami.DevOps.Minikube/Public/Export-MinikubeDevDynamic.ps1
2023-05-30 22:51:22 -07:00

43 lines
1.7 KiB
PowerShell

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"
}