Skip to content

Commit 3a63d35

Browse files
authored
feat: Add support for arm64 linux (#2698)
1 parent 73995ba commit 3a63d35

16 files changed

+471
-304
lines changed

build/azure-devops/agents-ci-discovery.yml

Lines changed: 48 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,15 @@ pr:
1616
variables:
1717
- template: ./variables/build.yml
1818
- template: ./variables/tests.yml
19+
- template: ./variables/containers.yml
1920
- name: Image.Name
20-
value: 'ghcr.io/tomkerkhove/promitor-agent-resource-discovery-ci'
21+
value: 'promitor-agent-resource-discovery-ci'
22+
- name: Image.Repository
23+
value: '$(Image.Organization)/$(Image.Name)'
24+
- name: Image.Name.Full
25+
value: '$(Image.Registry)/$(Image.Repository)'
2126
- name: Image.TaggedName
22-
value: '$(Image.Name):$(Tags.PR)'
27+
value: '$(Image.Name.Full):$(Tags.PR)'
2328
- name: Container.Name
2429
value: 'promitor-discovery-agent'
2530
- name: App.Version
@@ -50,7 +55,7 @@ stages:
5055
variables:
5156
- group: 'Agent Authentication'
5257
- name: Image.TaggedName.OSAgnostic
53-
value: '$(Image.Name):$(Image.Tag)'
58+
value: '$(Image.Name.Full):$(Image.Tag)'
5459
- name: Tags.PR
5560
value: '$(Image.Tag)-$(OS.Name)'
5661
- name: Container.Port
@@ -73,26 +78,30 @@ stages:
7378
variables:
7479
Tags.Experimental: 'experimental-$(OS.Name)'
7580
OS.Name: 'linux'
81+
Docker.Builder.Name: 'promitor-multiarch'
7682
steps:
7783
- download: current
7884
artifact: variables
7985
- template: templates/utils/read-variable-on-linux.yml
8086
parameters:
8187
variableName: 'Image.Tag'
88+
- template: templates/docker/linux-create-builder.yml
89+
parameters:
90+
builderName: '$(Docker.Builder.Name)'
8291
- ${{ if not(eq(variables['Build.Reason'], 'PullRequest')) }}:
83-
- template: templates/build-discovery-image.yml
92+
- template: templates/docker/linux-build-image.yml
8493
parameters:
85-
imageName: '$(Image.TaggedName)'
86-
tags: '--tag promitor-agent-resource-discovery-ci'
87-
buildArgs: 'VERSION="$(App.Version)"'
88-
os: '$(OS.Name)'
94+
builderName: '$(Docker.Builder.Name)'
95+
dockerFile: './src/Promitor.Agents.ResourceDiscovery/Dockerfile.$(OS.Name)'
96+
tags: '--tag $(Image.TaggedName) --tag promitor-agent-resource-discovery-ci'
97+
buildArgs: '--build-arg VERSION="$(App.Version)"'
8998
- ${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
90-
- template: templates/build-discovery-image.yml
99+
- template: templates/docker/linux-build-image.yml
91100
parameters:
92-
imageName: '$(Image.TaggedName)'
93-
tags: '--tag promitor-agent-resource-discovery-ci --tag $(Image.TaggedName.OSAgnostic)'
94-
buildArgs: 'VERSION="$(App.Version)"'
95-
os: '$(OS.Name)'
101+
builderName: '$(Docker.Builder.Name)'
102+
dockerFile: './src/Promitor.Agents.ResourceDiscovery/Dockerfile.$(OS.Name)'
103+
tags: '--tag $(Image.TaggedName) --tag promitor-agent-resource-discovery-ci --tag $(Image.TaggedName.OSAgnostic)'
104+
buildArgs: '--build-arg VERSION="$(App.Version)"'
96105
- template: templates/agents/run-discovery-image.yml
97106
parameters:
98107
imageName: '$(Image.TaggedName)'
@@ -117,12 +126,14 @@ stages:
117126
agentName: 'Resource Discovery'
118127
url: '$(Agent.ResourceDiscovery.BaseUrl)/$(Agent.ResourceDiscovery.Prometheus.ScrapeUri)'
119128
- ${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
120-
- template: templates/docker/push-image.yml
121-
parameters:
122-
imageName: '$(Image.TaggedName)'
123-
- template: templates/docker/push-image.yml
129+
- template: templates/docker/linux-push-image.yml
124130
parameters:
125-
imageName: '$(Image.TaggedName.OSAgnostic)'
131+
builderName: '$(Docker.Builder.Name)'
132+
dockerFile: './src/Promitor.Agents.ResourceDiscovery/Dockerfile.$(OS.Name)'
133+
tags: >
134+
--tag $(Image.TaggedName)
135+
--tag $(Image.TaggedName.OSAgnostic)
136+
buildArgs: '--build-arg VERSION="$(App.Version)"'
126137
- job: DockerBuildWindows
127138
displayName: Build Docker Image (Windows)
128139
condition: succeeded()
@@ -141,19 +152,24 @@ stages:
141152
- template: templates/versioning/determine-pr-version.yml
142153
- template: templates/agents/prepare-discovery-ci-config.yml
143154
- ${{ if not(eq(variables['Build.Reason'], 'PullRequest')) }}:
144-
- template: templates/build-discovery-image.yml
155+
- template: templates/docker/windows-build-image.yml
145156
parameters:
146-
imageName: '$(Image.TaggedName)'
147-
buildArgs: 'VERSION="$(App.Version)"'
148-
tags: '--tag promitor-agent-resource-discovery-ci'
149-
os: '$(OS.Name)'
157+
imageDisplayName: '$(Image.TaggedName)'
158+
dockerFile: './src/Promitor.Agents.ResourceDiscovery/Dockerfile.$(OS.Name)'
159+
buildArgs: '--build-arg VERSION="$(App.Version)"'
160+
repository: '$(Image.Name.Full)'
161+
tags: |
162+
$(Tags.PR)
150163
- ${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
151-
- template: templates/build-discovery-image.yml
164+
- template: templates/docker/windows-build-image.yml
152165
parameters:
153-
imageName: '$(Image.TaggedName)'
154-
tags: '--tag promitor-agent-resource-discovery-ci --tag $(Image.TaggedName.OSAgnostic)'
155-
buildArgs: 'VERSION="$(App.Version)"'
156-
os: '$(OS.Name)'
166+
imageDisplayName: '$(Image.TaggedName)'
167+
dockerFile: './src/Promitor.Agents.ResourceDiscovery/Dockerfile.$(OS.Name)'
168+
buildArgs: '--build-arg VERSION="$(App.Version)"'
169+
repository: '$(Image.Name.Full)'
170+
tags: |
171+
$(Tags.PR)
172+
$(Image.Tag)
157173
- template: templates/agents/run-discovery-image.yml
158174
parameters:
159175
imageName: '$(Image.TaggedName)'
@@ -178,6 +194,8 @@ stages:
178194
agentName: 'Resource Discovery'
179195
url: '$(Agent.ResourceDiscovery.BaseUrl)/$(Agent.ResourceDiscovery.Prometheus.ScrapeUri)'
180196
- ${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
181-
- template: templates/docker/push-image.yml
197+
- template: templates/docker/windows-push-image.yml
182198
parameters:
183-
imageName: '$(Image.TaggedName)'
199+
imageDisplayName: '$(Image.TaggedName)'
200+
repository: '$(Image.Repository)'
201+
tags: '$(Tags.PR)'

build/azure-devops/agents-ci-scraper.yml

Lines changed: 62 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,15 @@ pr:
1616
variables:
1717
- template: ./variables/build.yml
1818
- template: ./variables/tests.yml
19+
- template: ./variables/containers.yml
1920
- name: Image.Name
20-
value: 'ghcr.io/tomkerkhove/promitor-agent-scraper-ci'
21+
value: 'promitor-agent-scraper-ci'
22+
- name: Image.Repository
23+
value: '$(Image.Organization)/$(Image.Name)'
24+
- name: Image.Name.Full
25+
value: '$(Image.Registry)/$(Image.Repository)'
2126
- name: Image.TaggedName
22-
value: '$(Image.Name):$(Tags.PR)'
27+
value: '$(Image.Name.Full):$(Tags.PR)'
2328
- name: App.Version
2429
value: '0.0.0-$(Image.Tag)'
2530
stages:
@@ -67,7 +72,7 @@ stages:
6772
value: '999'
6873
- name: Container.Network.Name
6974
value: 'ci-network'
70-
- name: Image.ResourceDiscovery.Name
75+
- name: Image.ResourceDiscovery.Local
7176
value: 'local/promitor-resource-discovery:dev'
7277
- name: OpenTelemetry.Collector.Uri
7378
value: http://localhost:8889
@@ -79,35 +84,40 @@ stages:
7984
pool:
8085
vmImage: ubuntu-latest
8186
variables:
82-
Image.TaggedName.OSAgnostic: '$(Image.Name):$(Image.Tag)'
87+
Image.TaggedName.OSAgnostic: '$(Image.Name.Full):$(Image.Tag)'
8388
Tags.Experimental: 'experimental-$(OS.Name)'
8489
OS.Name: 'linux'
90+
Docker.Builder.Name: 'promitor-multiarch'
8591
steps:
8692
- download: current
8793
artifact: variables
8894
- template: templates/utils/read-variable-on-linux.yml
8995
parameters:
9096
variableName: 'Image.Tag'
97+
- template: templates/docker/linux-create-builder.yml
98+
parameters:
99+
builderName: '$(Docker.Builder.Name)'
91100
- ${{ if not(eq(variables['Build.Reason'], 'PullRequest')) }}:
92-
- template: templates/build-scraper-image.yml
101+
- template: templates/docker/linux-build-image.yml
93102
parameters:
94-
imageName: '$(Image.TaggedName)'
95-
tags: '--tag promitor-agent-scraper-ci'
96-
buildArgs: 'VERSION="$(App.Version)"'
97-
os: '$(OS.Name)'
103+
builderName: '$(Docker.Builder.Name)'
104+
dockerFile: './src/Promitor.Agents.Scraper/Dockerfile.$(OS.Name)'
105+
tags: '--tag $(Image.TaggedName)'
106+
buildArgs: '--build-arg VERSION="$(App.Version)"'
98107
- ${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
99-
- template: templates/build-scraper-image.yml
108+
- template: templates/docker/linux-build-image.yml
100109
parameters:
101-
imageName: '$(Image.TaggedName)'
102-
tags: '--tag promitor-agent-scraper-ci --tag $(Image.TaggedName.OSAgnostic)'
103-
buildArgs: 'VERSION="$(App.Version)"'
104-
os: '$(OS.Name)'
105-
- template: templates/build-discovery-image.yml
110+
builderName: '$(Docker.Builder.Name)'
111+
dockerFile: './src/Promitor.Agents.Scraper/Dockerfile.$(OS.Name)'
112+
tags: '--tag $(Image.TaggedName) --tag $(Image.TaggedName.OSAgnostic)'
113+
buildArgs: '--build-arg VERSION="$(App.Version)"'
114+
- template: templates/docker/linux-build-image.yml
106115
parameters:
107-
imageName: '$(Image.ResourceDiscovery.Name)'
108-
tags: '--tag dev'
109-
buildArgs: 'VERSION="$(App.Version)"'
110-
os: '$(OS.Name)'
116+
builderName: '$(Docker.Builder.Name)'
117+
dockerFile: './src/Promitor.Agents.ResourceDiscovery/Dockerfile.$(OS.Name)'
118+
tags: '--tag $(Image.ResourceDiscovery.Name)'
119+
platforms: 'linux/amd64'
120+
buildArgs: '--build-arg VERSION="$(App.Version)"'
111121
- template: templates/docker/create-network.yml
112122
parameters:
113123
networkName: '$(Container.Network.Name)'
@@ -174,12 +184,14 @@ stages:
174184
agentName: 'OpenTelemetry'
175185
url: '$(OpenTelemetry.Collector.Uri)/$(Agent.OpenTelemetry.Prometheus.ScrapeUri)'
176186
- ${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
177-
- template: templates/docker/push-image.yml
187+
- template: templates/docker/linux-push-image.yml
178188
parameters:
179-
imageName: '$(Image.TaggedName)'
180-
- template: templates/docker/push-image.yml
181-
parameters:
182-
imageName: '$(Image.TaggedName.OSAgnostic)'
189+
builderName: '$(Docker.Builder.Name)'
190+
dockerFile: './src/Promitor.Agents.Scraper/Dockerfile.$(OS.Name)'
191+
buildArgs: '--build-arg VERSION="$(App.Version)"'
192+
tags: >
193+
--tag $(Image.TaggedName)
194+
--tag $(Image.TaggedName.OSAgnostic)
183195
- job: DockerBuildWindows
184196
displayName: Build Docker Image (Windows)
185197
condition: succeeded()
@@ -197,26 +209,32 @@ stages:
197209
- ${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
198210
- template: templates/versioning/determine-pr-version.yml
199211
- ${{ if not(eq(variables['Build.Reason'], 'PullRequest')) }}:
200-
- template: templates/build-scraper-image.yml
212+
- template: templates/docker/windows-build-image.yml
201213
parameters:
202-
imageName: '$(Image.TaggedName)'
203-
buildArgs: 'VERSION="$(App.Version)"'
204-
tags: '--tag promitor-agent-scraper-ci --tag promitor-agent-scraper-ci-non-pr'
205-
os: '$(OS.Name)'
214+
imageDisplayName: '$(Image.TaggedName)'
215+
dockerFile: './src/Promitor.Agents.Scraper/Dockerfile.$(OS.Name)'
216+
buildArgs: '--build-arg VERSION="$(App.Version)"'
217+
repository: '$(Image.Name.Full)'
218+
tags: |
219+
$(Tags.PR)
206220
- template: templates/agents/prepare-scraper-ci-config.yml
207221
- template: templates/agents/prepare-discovery-ci-config.yml
208-
- template: templates/build-discovery-image.yml
222+
- template: templates/docker/windows-build-image.yml
209223
parameters:
210-
imageName: '$(Image.ResourceDiscovery.Name)'
211-
tags: '--tag dev'
212-
buildArgs: 'VERSION="$(App.Version)"'
213-
os: '$(OS.Name)'
214-
- template: templates/build-scraper-image.yml
224+
imageDisplayName: '$(Image.ResourceDiscovery.Local)'
225+
dockerFile: './src/Promitor.Agents.ResourceDiscovery/Dockerfile.$(OS.Name)'
226+
buildArgs: '--build-arg VERSION="$(App.Version)"'
227+
repository: 'local/promitor-resource-discovery'
228+
tags: 'dev'
229+
- template: templates/docker/windows-build-image.yml
215230
parameters:
216-
imageName: '$(Image.TaggedName)'
217-
buildArgs: 'VERSION="$(App.Version)"'
218-
tags: '--tag promitor-agent-scraper-ci'
219-
os: '$(OS.Name)'
231+
imageDisplayName: '$(Image.TaggedName)'
232+
dockerFile: './src/Promitor.Agents.Scraper/Dockerfile.$(OS.Name)'
233+
buildArgs: '--build-arg VERSION="$(App.Version)"'
234+
repository: '$(Image.Name.Full)'
235+
tags: |
236+
$(Tags.PR)
237+
$(Image.Tag)
220238
- template: templates/docker/create-network.yml
221239
parameters:
222240
networkName: '$(Container.Network.Name)'
@@ -245,7 +263,7 @@ stages:
245263
os: '$(OS.Name)'
246264
- template: templates/agents/run-discovery-image.yml
247265
parameters:
248-
imageName: '$(Image.ResourceDiscovery.Name)'
266+
imageName: '$(Image.ResourceDiscovery.Local)'
249267
containerName: '$(Container.ResourceDiscovery.Name)'
250268
containerPort: '$(Container.ResourceDiscovery.Port)'
251269
volumes: '$(Pipeline.Workspace)\s\config\promitor\resource-discovery\:c:\config\'
@@ -275,6 +293,8 @@ stages:
275293
parameters:
276294
containerName: '$(Container.ResourceDiscovery.Name)'
277295
- ${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
278-
- template: templates/docker/push-image.yml
296+
- template: templates/docker/windows-push-image.yml
279297
parameters:
280-
imageName: '$(Image.TaggedName)'
298+
imageDisplayName: '$(Image.TaggedName)'
299+
repository: '$(Image.Repository)'
300+
tags: '$(Tags.PR)'

0 commit comments

Comments
 (0)