Azure Container Registry als universele opslag met ORAS
Tyas Seegers
Als je denkt dat je container registry alleen bedoeld is voor de opslag van Docker images, dan heb je het mis. Met ORAS kun je vrijwel elk type bestand uploaden naar een OCI-compatibele registry, zoals Azure Container Registry (ACR). Dit maakt het mogelijk om je container registry te gebruiken als centrale opslag voor meer dan alleen containers.
Wat is ORAS?
ORAS staat voor OCI Registry As Storage. Het is een open-source CLI-tool waarmee je bestanden kunt pushen naar en pullen uit een OCI-compatibele registry.
De afkorting OCI staat voor Open Container Initiative, een standaard beheerd door de Linux Foundation, met als doel specificaties te ontwikkelen voor containers, zodat ze uitwisselbaar en consistent zijn tussen verschillende platforms en tools.
ORAS werkt niet alleen met Azure Container Registry, maar ondersteund ook andere registries als Google Artifact Registry, JFrog Artifactory en Docker Hub. Waar je met de Docker- of Helm CLI eenvoudig een image of Chart kunt uploaden via ‘docker push’ of ‘helm push’, lukt dit standaard niet met willekeurige bestanden. Met ORAS dus wel.
Installatie
De installatie van ORAS is eenvoudig. Het wordt ondersteund op verschillende platformen via package managers zoals Homebrew en Winget. Daarnaast is ORAS vaak al vooraf geïnstalleerd op de Microsoft-hosted agents in Azure Pipelines, waardoor je het direct kunt gebruiken in CI/CD-processen: handige links hierbij zijn de officiële installatiehandleiding en de how-to guides voor praktische voorbeelden.
De CLI-commando’s van ORAS zijn overzichtelijk, intuïtief en goed gedocumenteerd.
oras --help
Usage:
oras [command]
Available Commands:
attach [Preview] Attach files to an existing artifact
blob Blob operations
completion Generate the autocompletion script for the specified shell
cp Copy artifacts from one target to another
discover [Preview] Discover referrers of a manifest in a registry or an OCI image layout
help Help about any command
login Log in to a remote registry
logout Log out from a remote registry
manifest Manifest operations
pull Pull files from a registry or an OCI image layout
push Push files to a registry or an OCI image layout
repo Repository operations
resolve [Experimental] Resolves digest of the target artifact
tag Tag a manifest in a registry or an OCI image layout
version Show the oras version information
Flags:
-h, --help help for oras
Use "oras [command] --help" for more information about a command.
Wanneer gebruik je ORAS?
Hoewel het niet aan te raden is om een container registry te misbruiken als generieke opslag (daarvoor zijn andere diensten zoals Azure Blob Storage geschikter), zijn er scenario’s waarin ORAS juist veel toegevoegde waarde biedt.
Bijvoorbeeld: Je organisatie gebruikt containers voor vrijwel alle projecten, behalve één. Toch wil je voor alle builds een standaard build- en deployment proces aanhouden.
In dat geval biedt ORAS de mogelijkheid om build artifacts, ongeacht het bestandstype, op te slaan op één centrale plek, namelijk je bestaande container registry. Dit vermindert de overhead van het beheren van meerdere opslagbronnen en vereenvoudigt het CI/CD-proces.
Oras stelt je in staat om niet-gecontaineriseerde artifacts op dezelfde manier te beheren als containerimages. Consistent, centraal en geautomatiseerd. Een krachtige tool voor teams die streven naar eenvoud, uniformiteit en DevOps best practices.