Skip to content

Commit 779438c

Browse files
committed
Revert "feat: add arm64 support for images (Azure#116)"
This reverts commit 57b116e.
1 parent 57b116e commit 779438c

6 files changed

+36
-92
lines changed

.pipelines/templates/e2e-kind-template.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
jobs:
22
- job: e2e_tests
3-
timeoutInMinutes: 15
3+
timeoutInMinutes: 10
44
cancelTimeoutInMinutes: 5
55
workspace:
66
clean: all

.pipelines/templates/scan-images-template.yml

+1-3
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,7 @@ steps:
22
- script: |
33
export REGISTRY="e2e"
44
export IMAGE_VERSION="test"
5-
export OUTPUT_TYPE="type=docker"
6-
make docker-init-buildx docker-build
7-
5+
make build-image
86
wget https://github.com/aquasecurity/trivy/releases/download/v$(TRIVY_VERSION)/trivy_$(TRIVY_VERSION)_Linux-64bit.tar.gz
97
tar zxvf trivy_$(TRIVY_VERSION)_Linux-64bit.tar.gz
108

.pipelines/templates/unit-tests-template.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,6 @@ jobs:
3232
sudo ./_output/kubernetes-kms --keyvault-name $KV_NAME --key-name $KV_KEY --key-version $KV_KEY_VERSION --listen-addr "unix:///opt/azurekms.sock" > /dev/null &
3333
echo Waiting 2 seconds for the server to start
3434
sleep 2
35-
sudo make integration-test
35+
make integration-test
3636
displayName: Run integration tests
3737
- template: scan-images-template.yml

Dockerfile

+4-23
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,6 @@
1-
FROM golang:1.17-bullseye as builder
1+
ARG BASEIMAGE="gcr.io/distroless/static:nonroot-amd64"
2+
FROM $BASEIMAGE
23

3-
WORKDIR /workspace
4-
# Copy the Go Modules manifests
5-
COPY go.mod go.mod
6-
COPY go.sum go.sum
7-
# cache deps before building and copying source so that we don't need to re-download as much
8-
# and so that source changes don't invalidate our downloaded layer
9-
RUN go mod download
4+
COPY ./_output/kubernetes-kms /bin/
105

11-
# Copy the go source
12-
COPY cmd/server/main.go main.go
13-
COPY pkg/ pkg/
14-
15-
ARG TARGETARCH
16-
ARG TARGETPLATFORM
17-
RUN CGO_ENABLED=0 GOOS=linux GOARCH=${TARGETARCH} GO111MODULE=on go build -a -ldflags "${LDFLAGS:--X github.com/Azure/kubernetes-kms/pkg/version.BuildVersion=latest}" -o _output/kubernetes-kms main.go
18-
19-
# Use distroless as minimal base image to package the manager binary
20-
# Refer to https://github.com/GoogleContainerTools/distroless for more details
21-
FROM --platform=${TARGETPLATFORM:-linux/amd64} gcr.io/distroless/static:nonroot
22-
WORKDIR /
23-
COPY --from=builder /workspace/_output/kubernetes-kms .
24-
25-
ENTRYPOINT [ "/kubernetes-kms" ]
6+
ENTRYPOINT [ "/bin/kubernetes-kms" ]

Makefile

+27-60
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ BUILD_DATE_VAR := $(REPO_PATH)/pkg/version.BuildDate
1818
BUILD_DATE := $$(date +%Y-%m-%d-%H:%M)
1919
GIT_VAR := $(REPO_PATH)/pkg/version.GitCommit
2020
GIT_HASH := $$(git rev-parse --short HEAD)
21-
LDFLAGS ?= "-X $(BUILD_DATE_VAR)=$(BUILD_DATE) -X $(BUILD_VERSION_VAR)=$(IMAGE_VERSION) -X $(GIT_VAR)=$(GIT_HASH)"
2221

2322
GO_FILES=$(shell go list ./... | grep -v /test/e2e)
2423
TOOLS_MOD_DIR := ./tools
@@ -31,11 +30,9 @@ export DOCKER_BUILDKIT
3130
# Testing var
3231
KIND_VERSION ?= 0.11.0
3332
KUBERNETES_VERSION ?= v1.21.1
34-
BATS_VERSION ?= 1.4.1
33+
BATS_VERSION ?= 1.2.1
3534

36-
## --------------------------------------
37-
## Linting
38-
## --------------------------------------
35+
GO_BUILD_OPTIONS := --tags "netgo osusergo" -ldflags "-s -X $(BUILD_VERSION_VAR)=$(IMAGE_VERSION) -X $(GIT_VAR)=$(GIT_HASH) -X $(BUILD_DATE_VAR)=$(BUILD_DATE) -extldflags '-static'"
3936

4037
$(TOOLS_DIR)/golangci-lint: $(TOOLS_MOD_DIR)/go.mod $(TOOLS_MOD_DIR)/go.sum $(TOOLS_MOD_DIR)/tools.go
4138
cd $(TOOLS_MOD_DIR) && \
@@ -45,71 +42,41 @@ $(TOOLS_DIR)/golangci-lint: $(TOOLS_MOD_DIR)/go.mod $(TOOLS_MOD_DIR)/go.sum $(TO
4542
lint: $(TOOLS_DIR)/golangci-lint
4643
$(TOOLS_DIR)/golangci-lint run --timeout=5m -v
4744

48-
## --------------------------------------
49-
## Images
50-
## --------------------------------------
45+
.PHONY: build
46+
build:
47+
$Q GOOS=linux CGO_ENABLED=0 go build $(GO_BUILD_OPTIONS) -o _output/kubernetes-kms ./cmd/server/
5148

52-
ALL_LINUX_ARCH ?= amd64 arm64
53-
# Output type of docker buildx build
54-
OUTPUT_TYPE ?= type=registry
49+
.PHONY: build-darwin
50+
build-darwin:
51+
$Q GOOS=darwin CGO_ENABLED=0 go build $(GO_BUILD_OPTIONS) -o _output/kubernetes-kms ./cmd/server/
5552

56-
BUILDX_BUILDER_NAME ?= img-builder
57-
QEMU_VERSION ?= 5.2.0-2
58-
# The architecture of the image
59-
ARCH ?= amd64
53+
build-image: clean build
54+
$Q docker build -t $(IMAGE_TAG) .
6055

61-
.PHONY: build
62-
build:
63-
go build -a -ldflags $(LDFLAGS) -o _output/kubernetes-kms ./cmd/server/
64-
65-
.PHONY: docker-init-buildx
66-
docker-init-buildx:
67-
@if ! docker buildx ls | grep $(BUILDX_BUILDER_NAME); then \
68-
docker run --rm --privileged multiarch/qemu-user-static:$(QEMU_VERSION) --reset -p yes; \
69-
docker buildx create --name $(BUILDX_BUILDER_NAME) --use; \
70-
docker buildx inspect $(BUILDX_BUILDER_NAME) --bootstrap; \
71-
fi
72-
73-
.PHONY: docker-build
74-
docker-build:
75-
docker buildx build \
76-
--build-arg LDFLAGS=$(LDFLAGS) \
77-
--no-cache \
78-
--platform="linux/$(ARCH)" \
79-
--output=$(OUTPUT_TYPE) \
80-
-t $(REGISTRY)/$(IMAGE_NAME):$(IMAGE_VERSION)-linux-$(ARCH) . \
81-
--progress=plain; \
82-
83-
@if [ "$(ARCH)" = "amd64" ] && [ "$(OUTPUT_TYPE)" = "type=docker" ]; then \
84-
docker tag $(REGISTRY)/$(IMAGE_NAME):$(IMAGE_VERSION)-linux-$(ARCH) $(REGISTRY)/$(IMAGE_NAME):$(IMAGE_VERSION); \
85-
fi
86-
87-
.PHONY: docker-build-all
88-
docker-build-all:
89-
@for arch in $(ALL_LINUX_ARCH); do \
90-
$(MAKE) ARCH=$${arch} docker-build; \
91-
done
92-
93-
.PHONY: docker-push-manifest
94-
docker-push-manifest:
95-
docker manifest create --amend $(REGISTRY)/$(IMAGE_NAME):$(IMAGE_VERSION) $(foreach arch,$(ALL_LINUX_ARCH),$(REGISTRY)/$(IMAGE_NAME):$(IMAGE_VERSION)-linux-$(arch)); \
96-
for arch in $(ALL_LINUX_ARCH); do \
97-
docker manifest annotate --os linux --arch $${arch} $(REGISTRY)/$(IMAGE_NAME):$(IMAGE_VERSION) $(REGISTRY)/$(IMAGE_NAME):$(IMAGE_VERSION)-linux-$${arch}; \
98-
done; \
99-
docker manifest push --purge $(REGISTRY)/$(IMAGE_NAME):$(IMAGE_VERSION); \
56+
push-image: build-image
57+
$Q docker push $(IMAGE_TAG)
10058

101-
## --------------------------------------
102-
## Testing
103-
## --------------------------------------
59+
.PHONY: clean unit-test integration-test
60+
61+
clean:
62+
$Q rm -rf _output/
63+
64+
authors:
65+
$Q git log --all --format='%aN <%cE>' | sort -u | sed -n '/github/!p' > GITAUTHORS
66+
$Q cat AUTHORS GITAUTHORS | sort -u > NEWAUTHORS
67+
$Q mv NEWAUTHORS AUTHORS
68+
$Q rm -f NEWAUTHORS
69+
$Q rm -f GITAUTHORS
10470

105-
.PHONY: integration-test
10671
integration-test:
107-
go test -v -count=1 -failfast github.com/Azure/kubernetes-kms/tests/client
72+
$Q sudo GOPATH=$(GOPATH) go test -v -count=1 -failfast github.com/Azure/kubernetes-kms/tests/client
10873

109-
.PHONY: unit-test
11074
unit-test:
11175
go test -race -v -count=1 -failfast `go list ./... | grep -v client`
11276

77+
.PHONY: mod
78+
mod:
79+
@go mod tidy
11380

11481
## --------------------------------------
11582
## E2E Testing

scripts/setup-local-registry.sh

+2-4
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,10 @@ fi
1717
export REGISTRY=localhost:${REGISTRY_PORT}
1818
export IMAGE_NAME=keyvault
1919
export IMAGE_VERSION=e2e-$(git rev-parse --short HEAD)
20-
export OUTPUT_TYPE=type=docker
2120

2221
# push build image to local registry
23-
echo "Build and push image to local registry"
24-
make docker-init-buildx docker-build
25-
docker push "${REGISTRY}/${IMAGE_NAME}:${IMAGE_VERSION}"
22+
echo "Pushing image to local registry"
23+
make push-image
2624

2725
# generate manifest for local
2826
make e2e-generate-manifests

0 commit comments

Comments
 (0)