Skip to content

Commit 6d5734f

Browse files
Update common Docker engineering infrastructure with latest
1 parent 415314c commit 6d5734f

23 files changed

Lines changed: 107 additions & 115 deletions

eng/docker-tools/DEV-GUIDE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ Build Stage
160160
└── Apply EOL annotations
161161
```
162162
- Full pipeline with all stages
163-
- Images flow: `buildAcr``publishAcr` → MAR (see [`publish-config-prod.yml`](templates/stages/dotnet/publish-config-prod.yml) for ACR definitions)
163+
- Images flow: `BuildRegistry``PublishRegistry` → MAR (see [`publish-config-prod.yml`](templates/stages/dotnet/publish-config-prod.yml) for ACR definitions)
164164
- Tests run against staged images
165165
- Only successful builds get published
166166

eng/docker-tools/templates/jobs/build-images.yml

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ jobs:
3232
- ${{ parameters.commonInitStepsForMatrixAndBuild }}
3333
- template: /eng/docker-tools/templates/jobs/${{ format('../steps/init-docker-{0}.yml', parameters.dockerClientOS) }}@self
3434
parameters:
35+
publishConfig: ${{ parameters.publishConfig }}
3536
cleanupDocker: true
3637
- ${{ parameters.customInitSteps }}
3738
- template: /eng/docker-tools/templates/steps/set-image-info-path-var.yml@self
@@ -51,7 +52,7 @@ jobs:
5152
# the environment variable for us.
5253
$imageBuilderBuildArgs = "$env:IMAGEBUILDERBUILDARGS $env:IMAGEBUILDER_QUEUEARGS --image-info-output-path $(imageInfoContainerDir)/$(legName)-image-info.json $(commonMatrixAndBuildOptions)"
5354
if ($env:SYSTEM_TEAMPROJECT -eq "${{ parameters.internalProjectName }}" -and $env:BUILD_REASON -ne "PullRequest") {
54-
$imageBuilderBuildArgs = "$imageBuilderBuildArgs --repo-prefix ${{ parameters.publishConfig.buildAcr.repoPrefix }} --push"
55+
$imageBuilderBuildArgs = "$imageBuilderBuildArgs --repo-prefix ${{ parameters.publishConfig.BuildRegistry.repoPrefix }} --push"
5556
}
5657
5758
# If the pipeline isn't configured to disable the cache and a build variable hasn't been set to disable the cache
@@ -66,14 +67,8 @@ jobs:
6667
parameters:
6768
name: BuildImages
6869
displayName: Build Images
69-
serviceConnections:
70-
# "name" here refers to the argument name, not the service connection name.
71-
# It should probably be changed to "argName".
72-
- name: acr
73-
id: ${{ parameters.publishConfig.buildAcr.serviceConnection.id }}
74-
tenantId: ${{ parameters.publishConfig.buildAcr.serviceConnection.tenantId }}
75-
clientId: ${{ parameters.publishConfig.buildAcr.serviceConnection.clientId }}
76-
- ${{ if parameters.storageAccountServiceConnection }}:
70+
${{ if parameters.storageAccountServiceConnection }}:
71+
serviceConnections:
7772
- name: storage
7873
id: ${{ parameters.storageAccountServiceConnection.id }}
7974
tenantId: ${{ parameters.storageAccountServiceConnection.tenantId }}
@@ -89,8 +84,8 @@ jobs:
8984
--architecture $(architecture)
9085
--retry
9186
--digests-out-var 'builtImages'
92-
--acr-subscription '${{ parameters.publishConfig.buildAcr.subscription }}'
93-
--acr-resource-group '${{ parameters.publishConfig.buildAcr.resourceGroup }}'
87+
--acr-subscription '${{ parameters.publishConfig.BuildRegistry.subscription }}'
88+
--acr-resource-group '${{ parameters.publishConfig.BuildRegistry.resourceGroup }}'
9489
$(manifestVariables)
9590
$(imageBuilderBuildArgs)
9691
- template: /eng/docker-tools/templates/steps/publish-artifact.yml@self
@@ -104,12 +99,12 @@ jobs:
10499
- powershell: |
105100
$images = "$(BuildImages.builtImages)"
106101
if (-not $images) { return 0 }
107-
$syftImageName = "${{ parameters.publishConfig.publicMirrorAcr.server }}/$(imageNames.syft)"
102+
$syftImageName = "${{ parameters.publishConfig.PublicMirrorRegistry.server }}/$(imageNames.syft)"
108103
& $(engDockerToolsPath)/Pull-Image.ps1 $syftImageName
109104
$images -Split ',' | ForEach-Object {
110105
echo "Generating SBOM for $_";
111106
$targetImageName = "$_";
112-
$formattedImageName = $targetImageName.Replace('${{ parameters.publishConfig.buildAcr.server }}/${{ parameters.publishConfig.buildAcr.repoPrefix }}', "").Replace('/', '_').Replace(':', '_');
107+
$formattedImageName = $targetImageName.Replace('${{ parameters.publishConfig.BuildRegistry.server }}/${{ parameters.publishConfig.BuildRegistry.repoPrefix }}', "").Replace('/', '_').Replace(':', '_');
113108
$sbomChildDir = "$(sbomDirectory)/$formattedImageName";
114109
New-Item -Type Directory -Path $sbomChildDir > $null;
115110
docker build --output=$sbomChildDir -f $(engDockerToolsPath)/Dockerfile.syft --build-arg SYFT_IMAGE_NAME=$syftImageName --build-arg TARGET_IMAGE_NAME=$targetImageName -t syft-sbom $(engDockerToolsPath);

eng/docker-tools/templates/jobs/copy-base-images-staging.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,4 @@ jobs:
2525
pool: ${{ parameters.pool }}
2626
customInitSteps: ${{ parameters.customInitSteps }}
2727
additionalOptions: ${{ parameters.additionalOptions }}
28-
acr: ${{ parameters.publishConfig.internalMirrorAcr }}
29-
repoPrefix: ${{ parameters.publishConfig.internalMirrorAcr.repoPrefix }}
28+
acr: ${{ parameters.publishConfig.InternalMirrorRegistry }}

eng/docker-tools/templates/jobs/copy-base-images.yml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,6 @@ parameters:
88
- name: acr
99
type: object
1010
default: null
11-
- name: repoPrefix
12-
type: string
13-
default: null
1411
- name: customInitSteps
1512
type: stepList
1613
default: []
@@ -33,7 +30,6 @@ jobs:
3330
- template: /eng/docker-tools/templates/steps/copy-base-images.yml@self
3431
parameters:
3532
acr: ${{ parameters.acr }}
36-
repoPrefix: ${{ parameters.repoPrefix }}
3733
additionalOptions: ${{ parameters.additionalOptions }}
3834
continueOnError: ${{ parameters.continueOnError }}
3935
forceDryRun: ${{ parameters.forceDryRun }}

eng/docker-tools/templates/jobs/generate-matrix.yml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,5 @@ jobs:
6363
parameters:
6464
name: matrix
6565
displayName: Generate ${{ parameters.matrixType }} Matrix
66-
serviceConnections:
67-
- name: acr
68-
tenantId: $(build.serviceConnection.tenantId)
69-
clientId: $(build.serviceConnection.clientId)
70-
id: $(build.serviceConnection.id)
7166
internalProjectName: internal
7267
args: $(generateBuildMatrixCommand)

eng/docker-tools/templates/jobs/publish.yml

Lines changed: 15 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jobs:
2121
- name: imageBuilder.commonCmdArgs
2222
value: >-
2323
--manifest '$(manifest)'
24-
--registry-override '${{ parameters.publishConfig.publishAcr.server }}'
24+
--registry-override '${{ parameters.publishConfig.PublishRegistry.server }}'
2525
$(manifestVariables)
2626
$(imageBuilder.queueArgs)
2727
- name: publishNotificationRepoName
@@ -53,6 +53,8 @@ jobs:
5353
- template: /eng/docker-tools/templates/steps/retain-build.yml@self
5454

5555
- template: /eng/docker-tools/templates/steps/init-docker-linux.yml@self
56+
parameters:
57+
publishConfig: ${{ parameters.publishConfig }}
5658

5759
- pwsh: |
5860
$azdoOrgName = Split-Path -Leaf $Env:SYSTEM_COLLECTIONURI
@@ -95,21 +97,16 @@ jobs:
9597
- template: /eng/docker-tools/templates/steps/run-imagebuilder.yml@self
9698
parameters:
9799
displayName: Copy Images
98-
serviceConnections:
99-
- name: acr
100-
id: ${{ parameters.publishConfig.publishAcr.serviceConnection.id }}
101-
tenantId: ${{ parameters.publishConfig.publishAcr.serviceConnection.tenantId }}
102-
clientId: ${{ parameters.publishConfig.publishAcr.serviceConnection.clientId }}
103100
internalProjectName: ${{ parameters.internalProjectName }}
104101
args: >-
105102
copyAcrImages
106-
'${{ parameters.publishConfig.buildAcr.subscription }}'
107-
'${{ parameters.publishConfig.buildAcr.resourceGroup }}'
108-
'${{ parameters.publishConfig.buildAcr.repoPrefix }}'
109-
'${{ parameters.publishConfig.buildAcr.server }}'
103+
'${{ parameters.publishConfig.BuildRegistry.subscription }}'
104+
'${{ parameters.publishConfig.BuildRegistry.resourceGroup }}'
105+
'${{ parameters.publishConfig.BuildRegistry.repoPrefix }}'
106+
'${{ parameters.publishConfig.BuildRegistry.server }}'
110107
--os-type '*'
111108
--architecture '*'
112-
--repo-prefix '${{ parameters.publishConfig.publishAcr.repoPrefix }}'
109+
--repo-prefix '${{ parameters.publishConfig.PublishRegistry.repoPrefix }}'
113110
--image-info '$(imageInfoContainerDir)/image-info.json'
114111
$(dryRunArg)
115112
$(imageBuilder.pathArgs)
@@ -118,17 +115,12 @@ jobs:
118115
- template: /eng/docker-tools/templates/steps/run-imagebuilder.yml@self
119116
parameters:
120117
displayName: Publish Manifest
121-
serviceConnections:
122-
- name: acr
123-
id: ${{ parameters.publishConfig.publishAcr.serviceConnection.id }}
124-
tenantId: ${{ parameters.publishConfig.publishAcr.serviceConnection.tenantId }}
125-
clientId: ${{ parameters.publishConfig.publishAcr.serviceConnection.clientId }}
126118
internalProjectName: ${{ parameters.internalProjectName }}
127119
dockerClientOS: ${{ parameters.dockerClientOS }}
128120
args: >-
129121
publishManifest
130122
'$(imageInfoContainerDir)/image-info.json'
131-
--repo-prefix '${{ parameters.publishConfig.publishAcr.repoPrefix }}'
123+
--repo-prefix '${{ parameters.publishConfig.PublishRegistry.repoPrefix }}'
132124
--os-type '*'
133125
--architecture '*'
134126
$(dryRunArg)
@@ -208,17 +200,12 @@ jobs:
208200
- template: /eng/docker-tools/templates/steps/run-imagebuilder.yml@self
209201
parameters:
210202
displayName: Generate EOL Annotation Data
211-
serviceConnections:
212-
- name: acr
213-
id: ${{ parameters.publishConfig.publishAcr.serviceConnection.id }}
214-
tenantId: ${{ parameters.publishConfig.publishAcr.serviceConnection.tenantId }}
215-
clientId: ${{ parameters.publishConfig.publishAcr.serviceConnection.clientId }}
216203
internalProjectName: internal
217204
condition: and(succeeded(), eq(variables['publishEolAnnotations'], 'true'))
218205
args: >-
219206
generateEolAnnotationDataForPublish
220-
'${{ parameters.publishConfig.publishAcr.server }}'
221-
'${{ parameters.publishConfig.publishAcr.repoPrefix }}'
207+
'${{ parameters.publishConfig.PublishRegistry.server }}'
208+
'${{ parameters.publishConfig.PublishRegistry.repoPrefix }}'
222209
'$(artifactsPath)/eol-annotation-data/eol-annotation-data.json'
223210
'$(imageInfoContainerDir)/full-image-info-orig.json'
224211
'$(imageInfoContainerDir)/full-image-info-new.json'
@@ -236,7 +223,7 @@ jobs:
236223

237224
- template: /eng/docker-tools/templates/steps/annotate-eol-digests.yml@self
238225
parameters:
239-
acr: ${{ parameters.publishConfig.publishAcr }}
226+
acr: ${{ parameters.publishConfig.PublishRegistry }}
240227
dataFile: $(artifactsPath)/eol-annotation-data/eol-annotation-data.json
241228

242229
- script: >
@@ -275,7 +262,7 @@ jobs:
275262
$(gitHubNotificationsRepoInfo.authArgs)
276263
'$(gitHubNotificationsRepoInfo.org)'
277264
'$(gitHubNotificationsRepoInfo.repo)'
278-
--repo-prefix '${{ parameters.publishConfig.publishAcr.repoPrefix }}'
265+
--repo-prefix '${{ parameters.publishConfig.PublishRegistry.repoPrefix }}'
279266
--task "🟪 Copy Images"
280267
--task "🟪 Publish Manifest"
281268
--task "🟪 Wait for Image Ingestion"
@@ -284,8 +271,8 @@ jobs:
284271
--task "🟪 Publish Image Info"
285272
--task "🟪 Ingest Kusto Image Info"
286273
--task "🟪 Generate EOL Annotation Data"
287-
--task "🟪 Annotate EOL Images (${{ parameters.publishConfig.publishAcr.server }})"
288-
--task "🟪 Wait for Annotation Ingestion (${{ parameters.publishConfig.publishAcr.server }})"
274+
--task "🟪 Annotate EOL Images (${{ parameters.publishConfig.PublishRegistry.server }})"
275+
--task "🟪 Wait for Annotation Ingestion (${{ parameters.publishConfig.PublishRegistry.server }})"
289276
$(dryRunArg)
290277
$(imageBuilder.commonCmdArgs)
291278
displayName: Post Publish Notification

eng/docker-tools/templates/stages/dotnet/publish-config-nonprod.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ stages:
5050
# publishConfig schema is defined in src/ImageBuilder/Configuration/PublishConfiguration.cs.
5151
# This will get converted to JSON and placed in appsettings.json to be loaded by ImageBuilder at runtime.
5252
publishConfig:
53-
internalMirrorAcr:
53+
InternalMirrorRegistry:
5454
server: $(acr-staging-test.server)
5555
repoPrefix: $(mirrorRepoPrefix)
5656
resourceGroup: $(testResourceGroup)
@@ -61,7 +61,7 @@ stages:
6161
clientId: $(internal-mirror-test.serviceConnection.clientId)
6262
tenantId: $(testTenant)
6363

64-
publicMirrorAcr:
64+
PublicMirrorRegistry:
6565
server: $(public-mirror.server)
6666
resourceGroup: $(public-mirror.resourceGroup)
6767
subscription: $(public-mirror.subscription)
@@ -71,7 +71,7 @@ stages:
7171
tenantId: $(public-mirror.serviceConnection.tenantId)
7272
clientId: $(public-mirror.serviceConnection.clientId)
7373

74-
buildAcr:
74+
BuildRegistry:
7575
server: $(acr-staging-test.server)
7676
resourceGroup: $(testResourceGroup)
7777
subscription: $(testSubscription)
@@ -94,7 +94,7 @@ stages:
9494
clientId: $(test-nonprod.serviceConnection.clientId)
9595
tenantId: $(testTenant)
9696

97-
publishAcr:
97+
PublishRegistry:
9898
server: $(acr-test.server)
9999
resourceGroup: $(testResourceGroup)
100100
subscription: $(testSubscription)

eng/docker-tools/templates/stages/dotnet/publish-config-prod.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ stages:
5050
# publishConfig schema is defined in src/ImageBuilder/Configuration/PublishConfiguration.cs.
5151
# This will get converted to JSON and placed in appsettings.json to be loaded by ImageBuilder at runtime.
5252
publishConfig:
53-
internalMirrorAcr:
53+
InternalMirrorRegistry:
5454
server: $(acr-staging.server)
5555
repoPrefix: $(mirrorRepoPrefix)
5656
resourceGroup: $(acr-staging.resourceGroup)
@@ -61,7 +61,7 @@ stages:
6161
clientId: $(internal-mirror.serviceConnection.clientId)
6262
tenantId: $(internal-mirror.serviceConnection.tenantId)
6363

64-
publicMirrorAcr:
64+
PublicMirrorRegistry:
6565
server: $(public-mirror.server)
6666
resourceGroup: $(public-mirror.resourceGroup)
6767
subscription: $(public-mirror.subscription)
@@ -71,7 +71,7 @@ stages:
7171
tenantId: $(public-mirror.serviceConnection.tenantId)
7272
clientId: $(public-mirror.serviceConnection.clientId)
7373

74-
buildAcr:
74+
BuildRegistry:
7575
server: $(acr-staging.server)
7676
resourceGroup: $(acr-staging.resourceGroup)
7777
subscription: $(acr-staging.subscription)
@@ -94,7 +94,7 @@ stages:
9494
clientId: $(test.serviceConnection.clientId)
9595
tenantId: $(test.serviceConnection.tenantId)
9696

97-
publishAcr:
97+
PublishRegistry:
9898
server: $(acr.server)
9999
resourceGroup: $(acr.resourceGroup)
100100
subscription: $(acr.subscription)

eng/docker-tools/templates/steps/annotate-eol-digests.yml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,6 @@ steps:
1111
- template: /eng/docker-tools/templates/steps/run-imagebuilder.yml@self
1212
parameters:
1313
displayName: Annotate EOL Images (${{ parameters.acr.server }})
14-
serviceConnections:
15-
- name: acr
16-
id: ${{ parameters.acr.serviceConnection.id }}
17-
tenantId: ${{ parameters.acr.serviceConnection.tenantId }}
18-
clientId: ${{ parameters.acr.serviceConnection.clientId }}
1914
internalProjectName: internal
2015
condition: and(succeeded(), eq(variables['publishEolAnnotations'], 'true'))
2116
args: >-

eng/docker-tools/templates/steps/clean-acr-images.yml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,6 @@ steps:
1616
displayName: "Clean ${{ parameters.repo }} (${{ parameters.action }} > ${{ parameters.age }}d)"
1717
${{ else }}:
1818
displayName: "Clean ${{ parameters.repo }} (${{ parameters.action }})"
19-
serviceConnections:
20-
- name: acr
21-
id: ${{ parameters.publishConfig.cleanServiceConnection.id }}
22-
tenantId: ${{ parameters.publishConfig.cleanServiceConnection.tenantId }}
23-
clientId: ${{ parameters.publishConfig.cleanServiceConnection.clientId }}
2419
internalProjectName: ${{ parameters.internalProjectName }}
2520
args: >-
2621
cleanAcrImages

0 commit comments

Comments
 (0)