@@ -204,12 +204,14 @@ function initialization {
204204 # the below value of DISTRO_IDENTIFIER in the image tag.
205205 # TODO: We may need to update this value for Azure Linux 3.0.
206206 DISTRO_IDENTIFIER=" cm"
207+ END_OF_LIFE_1_YEAR=$( date -d " +1 year" " +%Y-%m-%dT%H:%M:%SZ" )
207208
208209 echo " Golden Image Name -> $GOLDEN_IMAGE_NAME "
209210 echo " Base ACR Container Name -> $BASE_IMAGE_NAME "
210211 echo " Base ACR Container Tag -> $BASE_IMAGE_TAG "
211212 echo " Azure Linux Version -> $AZURE_LINUX_VERSION "
212213 echo " Distro Identifier -> $DISTRO_IDENTIFIER "
214+ echo " End of Life -> $END_OF_LIFE_1_YEAR "
213215}
214216
215217function prepare_dockerfile {
@@ -322,16 +324,31 @@ function finalize {
322324 echo " $GOLDEN_IMAGE_NAME_FINAL " >> " $OUTPUT_DIR /PublishedContainers-$IMAGE .txt"
323325}
324326
327+ function oras_attach {
328+ local image_name=$1
329+ oras attach \
330+ --artifact-type " application/vnd.microsoft.artifact.lifecycle" \
331+ --annotation " vnd.microsoft.artifact.lifecycle.end-of-life.date=$END_OF_LIFE_1_YEAR " \
332+ " $image_name "
333+ }
334+
325335function publish_to_acr {
326336 CONTAINER_IMAGE=$1
327337 if [[ ! " $PUBLISH_TO_ACR " =~ [Tt]rue ]]; then
328338 echo " +++ Skip publishing to ACR"
329339 return
330340 fi
341+ local oras_access_token
342+
343+ echo " +++ az login into Azure ACR $ACR "
344+ oras_access_token=$( az acr login --name " $ACR " --expose-token --output tsv --query accessToken)
345+ oras login " $ACR .azurecr.io" \
346+ --username " 00000000-0000-0000-0000-000000000000" \
347+ --password " $oras_access_token "
348+
331349 echo " +++ Publish container $CONTAINER_IMAGE "
332- echo " login into ACR: $ACR "
333- az acr login --name " $ACR "
334350 docker image push " $CONTAINER_IMAGE "
351+ oras_attach " $CONTAINER_IMAGE "
335352}
336353
337354function generate_image_sbom {
0 commit comments