Skip to content

Commit

Permalink
Add multistage Dockerfiles for VPA components (#262)
Browse files Browse the repository at this point in the history
* Add multistage Dockerfiles for VPA components

* Adapt pipelines to point to multistage Dockerfiles
  • Loading branch information
voelzmo authored Nov 29, 2023
1 parent 9514278 commit 7a7501d
Show file tree
Hide file tree
Showing 4 changed files with 105 additions and 3 deletions.
6 changes: 3 additions & 3 deletions .ci/pipeline_definitions
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ vertical-pod-autoscaler:
build: ~
registry: 'gcr-readwrite'
image: 'eu.gcr.io/gardener-project/gardener/autoscaler/vertical-pod-autoscaler/vpa-recommender'
dockerfile: './vertical-pod-autoscaler/pkg/recommender/Dockerfile'
dockerfile: './vertical-pod-autoscaler/Dockerfile.recommender'
vpa-updater:
inputs:
repos:
Expand All @@ -106,7 +106,7 @@ vertical-pod-autoscaler:
build: ~
registry: 'gcr-readwrite'
image: 'eu.gcr.io/gardener-project/gardener/autoscaler/vertical-pod-autoscaler/vpa-updater'
dockerfile: './vertical-pod-autoscaler/pkg/updater/Dockerfile'
dockerfile: './vertical-pod-autoscaler/Dockerfile.updater'
vpa-admission-controller:
inputs:
repos:
Expand All @@ -115,7 +115,7 @@ vertical-pod-autoscaler:
build: ~
registry: 'gcr-readwrite'
image: 'eu.gcr.io/gardener-project/gardener/autoscaler/vertical-pod-autoscaler/vpa-admission-controller'
dockerfile: './vertical-pod-autoscaler/pkg/admission-controller/Dockerfile'
dockerfile: './vertical-pod-autoscaler/Dockerfile.admissioncontroller'
steps:
test:
image: 'golang:1.20.5'
Expand Down
34 changes: 34 additions & 0 deletions vertical-pod-autoscaler/Dockerfile.admissioncontroller
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Copyright 2017 The Kubernetes Authors. All rights reserved
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
FROM --platform=$BUILDPLATFORM golang:1.20.5 as builder

ENV GOPATH /gopath/
ENV PATH $GOPATH/bin:$PATH

COPY . /gopath/src/k8s.io/autoscaler/vertical-pod-autoscaler
WORKDIR /gopath/src/k8s.io/autoscaler/vertical-pod-autoscaler

ARG TARGETOS TARGETARCH

RUN CGO_ENABLED=0 GOARCH=$TARGETARCH GOOS=$TARGETOS go build -C pkg/admission-controller -mod vendor -o admission-controller-$TARGETARCH

FROM gcr.io/distroless/static:latest
MAINTAINER Krzysztof Grygiel "[email protected]"

ARG TARGETARCH

COPY --from=builder /gopath/src/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/admission-controller/admission-controller-$TARGETARCH /admission-controller

ENTRYPOINT ["/admission-controller"]
CMD ["--v=4", "--stderrthreshold=info"]
34 changes: 34 additions & 0 deletions vertical-pod-autoscaler/Dockerfile.recommender
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Copyright 2017 The Kubernetes Authors. All rights reserved
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
FROM --platform=$BUILDPLATFORM golang:1.20.5 as builder

ENV GOPATH /gopath/
ENV PATH $GOPATH/bin:$PATH

COPY . /gopath/src/k8s.io/autoscaler/vertical-pod-autoscaler
WORKDIR /gopath/src/k8s.io/autoscaler/vertical-pod-autoscaler

ARG TARGETOS TARGETARCH

RUN CGO_ENABLED=0 GOARCH=$TARGETARCH GOOS=$TARGETOS go build -C pkg/recommender -mod vendor -o recommender-$TARGETARCH

FROM gcr.io/distroless/static:latest
MAINTAINER Krzysztof Grygiel "[email protected]"

ARG TARGETARCH

COPY --from=builder /gopath/src/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/recommender/recommender-$TARGETARCH /recommender

ENTRYPOINT ["/recommender"]
CMD ["--v=4", "--stderrthreshold=info", "--prometheus-address=http://prometheus.monitoring.svc"]
34 changes: 34 additions & 0 deletions vertical-pod-autoscaler/Dockerfile.updater
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Copyright 2017 The Kubernetes Authors. All rights reserved
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
FROM --platform=$BUILDPLATFORM golang:1.20.5 as builder

ENV GOPATH /gopath/
ENV PATH $GOPATH/bin:$PATH

COPY . /gopath/src/k8s.io/autoscaler/vertical-pod-autoscaler
WORKDIR /gopath/src/k8s.io/autoscaler/vertical-pod-autoscaler

ARG TARGETOS TARGETARCH

RUN CGO_ENABLED=0 GOARCH=$TARGETARCH GOOS=$TARGETOS go build -C pkg/updater -mod vendor -o updater-$TARGETARCH

FROM gcr.io/distroless/static:latest
MAINTAINER Krzysztof Grygiel "[email protected]"

ARG TARGETARCH

COPY --from=builder /gopath/src/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/updater/updater-$TARGETARCH /updater

ENTRYPOINT ["/updater"]
CMD ["--v=4", "--stderrthreshold=info"]

0 comments on commit 7a7501d

Please sign in to comment.