Skip to content

Commit 9827d47

Browse files
Support ARM64 images (#2091)
* Support ARM images * Update Dockerfiles * wip * wip * wip * wip * wip * wip
1 parent ed3d9b3 commit 9827d47

File tree

10 files changed

+81
-31
lines changed

10 files changed

+81
-31
lines changed

.github/workflows/build-e2e-provisioning-test-image.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,4 @@ jobs:
2424
name: e2e-provisioning-test
2525
dockerfile: Dockerfile
2626
context: testing/e2e/provisioning
27+
build-engine: buildx

.github/workflows/create-release.yaml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ jobs:
9191
dockerfile: Dockerfile.keb
9292
context: .
9393
tags: ${{ inputs.name }}
94+
build-engine: buildx
9495

9596
build-archiver-image:
9697
needs: [validate-release]
@@ -101,6 +102,7 @@ jobs:
101102
context: .
102103
build-args: BIN=archiver
103104
tags: ${{ inputs.name }}
105+
build-engine: buildx
104106

105107
build-environments-cleanup-image:
106108
needs: [validate-release]
@@ -111,6 +113,7 @@ jobs:
111113
context: .
112114
build-args: BIN=environmentscleanup
113115
tags: ${{ inputs.name }}
116+
build-engine: buildx
114117

115118
build-deprovision-retrigger-image:
116119
needs: [validate-release]
@@ -121,6 +124,7 @@ jobs:
121124
context: .
122125
build-args: BIN=deprovisionretrigger
123126
tags: ${{ inputs.name }}
127+
build-engine: buildx
124128

125129
build-expirator-image:
126130
needs: [validate-release]
@@ -131,6 +135,7 @@ jobs:
131135
context: .
132136
build-args: BIN=expirator
133137
tags: ${{ inputs.name }}
138+
build-engine: buildx
134139

135140
build-runtime-reconciler-image:
136141
needs: [validate-release]
@@ -141,6 +146,7 @@ jobs:
141146
context: .
142147
build-args: BIN=runtime-reconciler
143148
tags: ${{ inputs.name }}
149+
build-engine: buildx
144150

145151
build-subaccount-cleanup-image:
146152
needs: [validate-release]
@@ -151,6 +157,7 @@ jobs:
151157
context: .
152158
build-args: BIN=accountcleanup
153159
tags: ${{ inputs.name }}
160+
build-engine: buildx
154161

155162
build-subaccount-sync-image:
156163
needs: [validate-release]
@@ -161,6 +168,7 @@ jobs:
161168
context: .
162169
build-args: BIN=subaccount-sync
163170
tags: ${{ inputs.name }}
171+
build-engine: buildx
164172

165173
build-globalaccounts-image:
166174
needs: [validate-release]
@@ -171,6 +179,7 @@ jobs:
171179
context: .
172180
build-args: BIN=globalaccounts
173181
tags: ${{ inputs.name }}
182+
build-engine: buildx
174183

175184
build-schema-migrator-image:
176185
needs: [ validate-release ]
@@ -180,6 +189,7 @@ jobs:
180189
dockerfile: Dockerfile.schemamigrator
181190
context: .
182191
tags: ${{ inputs.name }}
192+
build-engine: buildx
183193

184194
build-service-binding-cleanup-image:
185195
needs: [ validate-release ]
@@ -190,6 +200,7 @@ jobs:
190200
context: .
191201
build-args: BIN=servicebindingcleanup
192202
tags: ${{ inputs.name }}
203+
build-engine: buildx
193204

194205
run-keb-chart-integration-tests:
195206
name: Validate KEB chart

.github/workflows/pull-build-images.yaml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ jobs:
1717
name: kyma-environment-broker
1818
dockerfile: Dockerfile.keb
1919
context: .
20+
build-engine: buildx
2021

2122
archiver-image:
2223
uses: kyma-project/test-infra/.github/workflows/image-builder.yml@main
@@ -25,6 +26,7 @@ jobs:
2526
dockerfile: Dockerfile.job
2627
context: .
2728
build-args: BIN=archiver
29+
build-engine: buildx
2830

2931
environments-cleanup-image:
3032
uses: kyma-project/test-infra/.github/workflows/image-builder.yml@main
@@ -33,6 +35,7 @@ jobs:
3335
dockerfile: Dockerfile.job
3436
context: .
3537
build-args: BIN=environmentscleanup
38+
build-engine: buildx
3639

3740
deprovision-retrigger-image:
3841
uses: kyma-project/test-infra/.github/workflows/image-builder.yml@main
@@ -41,6 +44,7 @@ jobs:
4144
dockerfile: Dockerfile.job
4245
context: .
4346
build-args: BIN=deprovisionretrigger
47+
build-engine: buildx
4448

4549
expirator-image:
4650
uses: kyma-project/test-infra/.github/workflows/image-builder.yml@main
@@ -49,6 +53,7 @@ jobs:
4953
dockerfile: Dockerfile.job
5054
context: .
5155
build-args: BIN=expirator
56+
build-engine: buildx
5257

5358
runtime-reconciler-image:
5459
uses: kyma-project/test-infra/.github/workflows/image-builder.yml@main
@@ -57,6 +62,7 @@ jobs:
5762
dockerfile: Dockerfile.runtimereconciler
5863
context: .
5964
build-args: BIN=runtime-reconciler
65+
build-engine: buildx
6066

6167
subaccount-cleanup-image:
6268
uses: kyma-project/test-infra/.github/workflows/image-builder.yml@main
@@ -65,6 +71,7 @@ jobs:
6571
dockerfile: Dockerfile.job
6672
context: .
6773
build-args: BIN=accountcleanup
74+
build-engine: buildx
6875

6976
subaccount-sync-image:
7077
uses: kyma-project/test-infra/.github/workflows/image-builder.yml@main
@@ -73,6 +80,7 @@ jobs:
7380
dockerfile: Dockerfile.subaccountsync
7481
context: .
7582
build-args: BIN=subaccount-sync
83+
build-engine: buildx
7684

7785
globalaccounts-image:
7886
uses: kyma-project/test-infra/.github/workflows/image-builder.yml@main
@@ -81,13 +89,15 @@ jobs:
8189
dockerfile: Dockerfile.globalaccounts
8290
context: .
8391
build-args: BIN=globalaccounts
92+
build-engine: buildx
8493

8594
schema-migrator-image:
8695
uses: kyma-project/test-infra/.github/workflows/image-builder.yml@main
8796
with:
8897
name: kyma-environment-broker-schema-migrator
8998
dockerfile: Dockerfile.schemamigrator
9099
context: .
100+
build-engine: buildx
91101

92102
service-binding-cleanup-image:
93103
uses: kyma-project/test-infra/.github/workflows/image-builder.yml@main
@@ -96,3 +106,4 @@ jobs:
96106
dockerfile: Dockerfile.job
97107
context: .
98108
build-args: BIN=servicebindingcleanup
109+
build-engine: buildx

Dockerfile.globalaccounts

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,22 @@
11
# Build image
2-
FROM golang:1.24.3-alpine3.20 AS build
2+
FROM --platform=$BUILDPLATFORM golang:1.24.3-alpine3.20 AS build
33

44
WORKDIR /go/src/github.com/kyma-project/kyma-environment-broker
55

6+
COPY go.mod go.sum ./
7+
RUN go mod download
8+
69
COPY cmd cmd
710
COPY common common
811
COPY internal internal
9-
COPY go.mod go.mod
10-
COPY go.sum go.sum
1112

12-
RUN CGO_ENABLED=0 go build -o /bin/globalaccounts cmd/globalaccounts/main.go
13+
ARG TARGETOS TARGETARCH
14+
RUN --mount=type=cache,target=/root/.cache/go-build \
15+
--mount=type=cache,target=/go/pkg \
16+
CGO_ENABLED=0 GOOS=$TARGETOS GOARCH=$TARGETARCH go build -o /bin/globalaccounts cmd/globalaccounts/main.go
1317

1418
# Get latest CA certs
15-
FROM alpine:3.22.0 as certs
19+
FROM alpine:3.22.0 AS certs
1620
RUN apk --update add ca-certificates
1721

1822
# Final image

Dockerfile.job

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,23 @@
11
# Build image
2-
FROM golang:1.24.3-alpine3.20 AS build
2+
FROM --platform=$BUILDPLATFORM golang:1.24.3-alpine3.20 AS build
33

44
WORKDIR /go/src/github.com/kyma-project/kyma-environment-broker
55

6+
COPY go.mod go.sum ./
7+
RUN go mod download
8+
69
COPY cmd cmd
710
COPY common common
811
COPY internal internal
9-
COPY go.mod go.mod
10-
COPY go.sum go.sum
1112

13+
ARG TARGETOS TARGETARCH
1214
ARG BIN
13-
RUN CGO_ENABLED=0 go build -o /bin/main ./cmd/${BIN}/main.go
15+
RUN --mount=type=cache,target=/root/.cache/go-build \
16+
--mount=type=cache,target=/go/pkg \
17+
CGO_ENABLED=0 GOOS=$TARGETOS GOARCH=$TARGETARCH go build -o /bin/main ./cmd/${BIN}/main.go
1418

1519
# Get latest CA certs
16-
FROM alpine:3.22.0 as certs
20+
FROM alpine:3.22.0 AS certs
1721
RUN apk --update add ca-certificates
1822

1923
# Final image

Dockerfile.keb

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,28 @@
11
# Build image
2-
FROM golang:1.24.3-alpine3.20 AS build
2+
FROM --platform=$BUILDPLATFORM golang:1.24.3-alpine3.20 AS build
33

44
WORKDIR /go/src/github.com/kyma-project/kyma-environment-broker
55

6+
COPY go.mod go.sum ./
7+
RUN go mod download
8+
69
COPY cmd cmd
710
COPY common common
811
COPY internal internal
9-
COPY go.mod go.mod
10-
COPY go.sum go.sum
1112

1213
RUN mkdir /user && \
1314
echo 'appuser:x:2000:2000:appuser:/:' > /user/passwd && \
1415
echo 'appuser:x:2000:' > /user/group
1516

16-
RUN CGO_ENABLED=0 go build -o /bin/kyma-env-broker ./cmd/broker/
17+
ARG TARGETOS TARGETARCH
18+
RUN --mount=type=cache,target=/root/.cache/go-build \
19+
--mount=type=cache,target=/go/pkg \
20+
CGO_ENABLED=0 GOOS=$TARGETOS GOARCH=$TARGETARCH go build -o /bin/kyma-env-broker ./cmd/broker/
21+
1722
RUN touch /swagger.yaml
1823

1924
# Get latest CA certs
20-
FROM alpine:3.22.0 as certs
25+
FROM alpine:3.22.0 AS certs
2126
RUN apk --update add ca-certificates
2227

2328
# Final image

Dockerfile.runtimereconciler

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
11
# Build image
2-
FROM golang:1.24.3-alpine3.20 AS build
2+
FROM --platform=$BUILDPLATFORM golang:1.24.3-alpine3.20 AS build
33

44
WORKDIR /go/src/github.com/kyma-project/kyma-environment-broker
55

6+
COPY go.mod go.sum ./
7+
RUN go mod download
8+
69
COPY cmd cmd
710
COPY common common
811
COPY internal internal
9-
COPY go.mod go.mod
10-
COPY go.sum go.sum
1112

12-
RUN CGO_ENABLED=0 go build -o /bin/runtime-reconciler cmd/runtimereconciler/main.go
13+
ARG TARGETOS TARGETARCH
14+
RUN --mount=type=cache,target=/root/.cache/go-build \
15+
--mount=type=cache,target=/go/pkg \
16+
CGO_ENABLED=0 GOOS=$TARGETOS GOARCH=$TARGETARCH go build -o /bin/runtime-reconciler cmd/runtimereconciler/main.go
1317

1418
# Final image
1519
FROM scratch

Dockerfile.schemamigrator

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,18 @@
11
# Build image
2-
FROM golang:1.24.3-alpine3.20 AS build
2+
FROM --platform=$BUILDPLATFORM golang:1.24.3-alpine3.20 AS build
33

44
WORKDIR /go/src/github.com/kyma-project/kyma-environment-broker
55

6+
COPY go.mod go.sum ./
7+
RUN go mod download
8+
69
COPY cmd/schemamigrator cmd/schemamigrator
710
COPY internal/schemamigrator internal/schemamigrator
8-
COPY go.mod go.mod
9-
COPY go.sum go.sum
1011

11-
RUN go mod tidy && \
12-
CGO_ENABLED=0 go build -o /build/schema-migrator cmd/schemamigrator/main.go
12+
ARG TARGETOS TARGETARCH
13+
RUN --mount=type=cache,target=/root/.cache/go-build \
14+
--mount=type=cache,target=/go/pkg \
15+
CGO_ENABLED=0 GOOS=$TARGETOS GOARCH=$TARGETARCH go build -o /build/schema-migrator cmd/schemamigrator/main.go
1316

1417
# Final image
1518
FROM scratch

Dockerfile.subaccountsync

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,22 @@
11
# Build image
2-
FROM golang:1.24.3-alpine3.20 AS build
2+
FROM --platform=$BUILDPLATFORM golang:1.24.3-alpine3.20 AS build
33

44
WORKDIR /go/src/github.com/kyma-project/kyma-environment-broker
55

6+
COPY go.mod go.sum ./
7+
RUN go mod download
8+
69
COPY cmd cmd
710
COPY common common
811
COPY internal internal
9-
COPY go.mod go.mod
10-
COPY go.sum go.sum
1112

12-
RUN CGO_ENABLED=0 go build -o /bin/subaccount-sync cmd/subaccountsync/main.go
13+
ARG TARGETOS TARGETARCH
14+
RUN --mount=type=cache,target=/root/.cache/go-build \
15+
--mount=type=cache,target=/go/pkg \
16+
CGO_ENABLED=0 GOOS=$TARGETOS GOARCH=$TARGETARCH go build -o /bin/subaccount-sync cmd/subaccountsync/main.go
1317

1418
# Get latest CA certs
15-
FROM alpine:3.22.0 as certs
19+
FROM alpine:3.22.0 AS certs
1620
RUN apk --update add ca-certificates
1721

1822
# Final image

testing/e2e/provisioning/Dockerfile

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
1-
FROM golang:1.23.5-alpine3.20 as builder
1+
FROM --platform=$BUILDPLATFORM golang:1.23.5-alpine3.20 AS builder
22

33
ENV SRC_DIR=/go/src/github.com/kyma-project/kyma-environment-broker/tests/e2e/provisioning
44

55
WORKDIR $SRC_DIR
66
COPY . $SRC_DIR
77

8-
RUN CGO_ENABLED=0 GOOS=linux go test -ldflags="-s -w" -c ./test
8+
ARG TARGETOS TARGETARCH
9+
RUN --mount=type=cache,target=/root/.cache/go-build \
10+
--mount=type=cache,target=/go/pkg \
11+
CGO_ENABLED=0 GOOS=$TARGETOS GOARCH=$TARGETARCH go test -ldflags="-s -w" -c ./test
912

1013
FROM europe-docker.pkg.dev/kyma-project/prod/external/alpine:3.19.1
1114
LABEL source=git@github.com:kyma-project/kyma-environment-broker.git

0 commit comments

Comments
 (0)