Skip to content

Commit a065415

Browse files
committed
feat: switch to distroless base image
1 parent 63b48df commit a065415

File tree

6 files changed

+45
-26
lines changed

6 files changed

+45
-26
lines changed

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,5 @@ azure.json
2525
.DS_Store
2626

2727
.idea/
28+
29+
_output/

.pipelines/pr.yml

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
trigger: none
1+
trigger:
2+
branches:
3+
include:
4+
- master
25

36
pr:
47
branches:

.pipelines/scan-images.yml

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
steps:
2+
- script: |
3+
export REGISTRY="e2e"
4+
export IMAGE_VERSION="test"
5+
make build-image
6+
wget https://github.com/aquasecurity/trivy/releases/download/v$(TRIVY_VERSION)/trivy_$(TRIVY_VERSION)_Linux-64bit.tar.gz
7+
tar zxvf trivy_$(TRIVY_VERSION)_Linux-64bit.tar.gz
8+
9+
# show all vulnerabilities in the logs
10+
./trivy "${REGISTRY}/keyvault:${IMAGE_VERSION}"
11+
12+
./trivy --exit-code 1 --ignore-unfixed --severity MEDIUM,HIGH,CRITICAL "${REGISTRY}/keyvault:${IMAGE_VERSION}" || exit 1
13+
displayName: "Scan images for vulnerability"

.pipelines/unit-tests-template.yml

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
jobs:
22
- job: unit_tests
3-
timeoutInMinutes: 20
3+
timeoutInMinutes: 10
44
cancelTimeoutInMinutes: 5
55
workspace:
66
clean: all
@@ -23,8 +23,9 @@ jobs:
2323
CLIENT_ID: $(AZURE_CLIENT_ID)
2424
CLIENT_SECRET: $(AZURE_CLIENT_SECRET)
2525
- script: |
26-
sudo ./kubernetes-kms > /dev/null &
26+
sudo ./_output/kubernetes-kms > /dev/null &
2727
echo Waiting 2 seconds for the server to start
2828
sleep 2
2929
make integration-test
30-
displayName: Run intergration tests
30+
displayName: Run integration tests
31+
- template: scan-images.yml

Dockerfile

+7-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
FROM alpine:3.12
2-
WORKDIR /bin
1+
FROM us.gcr.io/k8s-artifacts-prod/build-image/debian-base-amd64:buster-v1.2.0
2+
COPY ./_output/kubernetes-kms /bin/
3+
# upgrading apt &libapt-pkg5.0 due to CVE-2020-27350
4+
# upgrading libp11-kit0 due to CVE-2020-29362, CVE-2020-29363 and CVE-2020-29361
5+
RUN apt-mark unhold apt && \
6+
clean-install ca-certificates apt libapt-pkg5.0 libp11-kit0 wget
37

4-
ADD ./kubernetes-kms /bin/k8s-azure-kms
5-
6-
CMD ["./k8s-azure-kms"]
8+
ENTRYPOINT [ "/bin/kubernetes-kms" ]

Makefile

+15-17
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
1-
binary := kubernetes-kms
21
REGISTRY_NAME ?= upstreamk8sci
3-
REGISTRY ?= $(REGISTRY_NAME).azurecr.io
42
REPO_PREFIX ?= k8s/kms
5-
DOCKER_IMAGE := $(REGISTRY)/$(REPO_PREFIX)/keyvault
6-
VERSION ?= v0.0.9
3+
REGISTRY ?= $(REGISTRY_NAME).azurecr.io/$(REPO_PREFIX)
4+
IMAGE_NAME ?= keyvault
5+
IMAGE_VERSION ?= v0.0.9
6+
IMAGE_TAG ?= $(REGISTRY)/$(IMAGE_NAME):$(IMAGE_VERSION)
77
CGO_ENABLED_FLAG := 0
88

9+
# docker env var
10+
DOCKER_BUILDKIT = 1
11+
export DOCKER_BUILDKIT
12+
913
ifeq ($(OS),Windows_NT)
1014
GOOS_FLAG = windows
1115
else
@@ -21,26 +25,20 @@ endif
2125
.PHONY: build
2226
build: authors
2327
@echo "Building..."
24-
$Q GOOS=${GOOS_FLAG} CGO_ENABLED=${CGO_ENABLED_FLAG} go build .
28+
$Q GOOS=$(GOOS_FLAG) CGO_ENABLED=$(CGO_ENABLED_FLAG) go build -o _output/kubernetes-kms .
2529

26-
build-image: authors deps
27-
@echo "Building..."
28-
$Q GOOS=linux CGO_ENABLED=${CGO_ENABLED_FLAG} go build .
30+
build-image: authors clean build
2931
@echo "Building docker image..."
30-
$Q docker build -t $(DOCKER_IMAGE):$(VERSION) .
32+
$Q docker build -t $(IMAGE_TAG) .
3133

32-
push: build-image
33-
$Q docker push $(DOCKER_IMAGE):$(VERSION)
34+
push-image: build-image
35+
$Q docker push $(IMAGE_TAG)
3436

35-
.PHONY: clean deps unit-test integration-test
37+
.PHONY: clean unit-test integration-test
3638

3739
clean:
3840
@echo "Clean..."
39-
$Q rm -rf $(binary)
40-
41-
setup: clean
42-
@echo "Setup..."
43-
go get -u github.com/golang/dep/cmd/dep
41+
$Q rm -rf _output/
4442

4543
authors:
4644
$Q git log --all --format='%aN <%cE>' | sort -u | sed -n '/github/!p' > GITAUTHORS

0 commit comments

Comments
 (0)