Command line tool to synchronize Docker Image Registries to private Azure Container Registries
$ dotnet add package ACR-SyncToolIt is common practice to have the Azure Container Registry behind a firewall and inaccessible from the outside world. Additionally, it is common practice to prevent AKS from loading images from public Docker Repositories. These two practices make it difficult to deploy images to the AKS cluster.
This tool aims to make this process easier by allowing you to sync images from a Docker Registry to the private Azure Container Registries.
This tool is split into 3 different steps:
Utilizes the Azure Container Registry Import feature.
dotnet tool install --global acr-synctool
Create appsettings.json and fill out the details
{
"AzureContainerRegistries": [
{
"Host": "ijtestacr.azurecr.io",
"TenantId": "f4ba3f29-303f-4c8b-a487-991dc21962c0",
"ClientId": "7c06291c-13bc-4321-ae27-34948ecc1eec",
"Secret": "mysecret"
}
],
"Registries": [
{
"Host": "ghcr.io",
"AuthType": "PasswordOAuth",
"Username": "ivanjosipovic",
"Password": "Pat Token"
},
{
"Host": "registry.hub.docker.com",
"AuthType": "PasswordOAuth",
"Username": "ivanjosipovic",
"Password": "Access Tokens"
},
{
"Host": "xpkg.upbound.io",
"AuthType": "AnonymousOAuth"
}
],
"SyncedImages": [
{
"Image": "ghcr.io/fluxcd/helm-controller",
"Semver": ">=0.11.0"
},
{
"Image": "ghcr.io/fluxcd/image-automation-controller",
"Semver": ">=0.14.0"
},
{
"Image": "ghcr.io/fluxcd/image-reflector-controller",
"Semver": ">=0.11.0"
},
{
"Image": "ghcr.io/fluxcd/kustomize-controller",
"Semver": ">=0.14.0"
},
{
"Image": "ghcr.io/fluxcd/notification-controller",
"Semver": ">=0.16.0"
},
{
"Image": "ghcr.io/fluxcd/source-controller",
"Semver": ">=0.15.0"
},
{
"Image": "registry.hub.docker.com/nginx/nginx-ingress",
"Tags": [
"1.12.0"
]
}
]
}