This project allows for the bulk migration from Azure Media Services to mk.io, allowing an easy way to migrate assets.
The tool needs access to both Azure and mk.io to export and import resources, respectively.
See also the bulk migration documentation here.
The project can run in three modes, which can be combined in one execution: Export, Import, Validate.
These modes are currently command-line flags, rather than separate Cobra commands. This gives us the option to run multiple modes at once, allowing users to run a single command to fully migrate items.
This migration tool currently works for the following resources:
A detailed demo can be found here
The migration tool doesn't currently handle Get/Create of Storage Accounts. It expects the same Storage Account, with the same name, to be in place in both Azure Media Services and mk.io.
Storage accounts
in the Settings
section.Shared access signature
under the Security + networking
section.
Service
, Object
, and Container
in Allowed resource types
.Generate SAS and connection string
.SAS token
to insert into mk.io.This is needed for Export.
Log into Azure from your terminal. Your set Azure account must have access to the Subscription/ResourceGroup you intend to migrate.
This is needed for Import and Validation.
The following instructions contain links to the Dev instance of mk.io. Use similar steps for Prod.
[!IMPORTANT] Make sure to insert your own Azure Subscription and Resource Group and your mk.io token.
To run from the command line use the command:
go run main.go --export --import ...
You can run export and import in the same command, which will automatically import all the exported data into mk.io. You can also run the only export to generate a JSON file, which can then be modified as desired before running the import. This could be useful if Storage Account names differ, or only specific asset migrations are desired.
Run the following command to build the go binary for Linux:
GOOS=linux GOARCH=amd64 go build -o mkio-ams-migration