Skip to content

Commit c462981

Browse files
authored
Update Dockerfile generation (#937)
To get the remaining Dockerfiles being updated via generate.sh too
1 parent 3e19978 commit c462981

11 files changed

Lines changed: 249 additions & 50 deletions

File tree

openshift/ci-operator/build-image/Dockerfile

Lines changed: 0 additions & 26 deletions
This file was deleted.

openshift/ci-operator/build-image/kubernetes.repo

Lines changed: 0 additions & 6 deletions
This file was deleted.

openshift/ci-operator/generate-ci-config.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ base_images:
3030
base:
3131
name: ubi-minimal
3232
namespace: ocp
33-
tag: "8"
33+
tag: "9"
3434
binary_build_commands: |
3535
TAG=${tag} make install
3636
TAG=${tag} make build-cross
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# Not generated yet!
2+
ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-9-release-golang-1.25-openshift-4.21
3+
ARG GO_RUNTIME=registry.access.redhat.com/ubi9/ubi-minimal
4+
5+
# ---------- BUILD STAGE ----------
6+
FROM $GO_BUILDER AS builder
7+
WORKDIR /workspace
8+
# Allow copying from higher directory when context is limited
9+
COPY . .
10+
ENV TAG="v1.20.0"
11+
ENV KN_PLUGIN_FUNC_UTIL_IMAGE=registry.redhat.io/openshift-serverless-1/kn-plugin-func-func-util-rhel9@sha256:will-be-replaced
12+
ENV KN_PLUGIN_EVENT_SENDER_IMAGE=registry.redhat.io/openshift-serverless-1/kn-plugin-event-sender-rhel9@sha256:will-be-replaced
13+
# Build binaries
14+
# RUN make build-cross-package
15+
RUN ./hack/build.sh -p linux amd64
16+
RUN ./hack/build.sh -p linux ppc64le
17+
RUN ./hack/build.sh -p linux s390x
18+
RUN ./hack/build.sh -p linux arm64
19+
RUN ./hack/build.sh -p darwin amd64
20+
RUN ./hack/build.sh -p darwin arm64
21+
RUN ./hack/build.sh -p windows amd64
22+
23+
RUN chmod +x kn-linux-amd64 kn-linux-ppc64le kn-linux-s390x kn-windows-amd64.exe kn-darwin-amd64 kn-linux-arm64 kn-darwin-arm64
24+
25+
## ---------- PACKAGING STAGE ----------
26+
RUN dnf install -y tar zip
27+
28+
RUN tar --transform='flags=r;s|kn-linux-amd64|kn|' -zcf kn-linux-amd64.tar.gz kn-linux-amd64 LICENSE \
29+
&& tar --transform='flags=r;s|kn-linux-ppc64le|kn|' -zcf kn-linux-ppc64le.tar.gz kn-linux-ppc64le LICENSE \
30+
&& tar --transform='flags=r;s|kn-linux-s390x|kn|' -zcf kn-linux-s390x.tar.gz kn-linux-s390x LICENSE \
31+
&& tar --transform='flags=r;s|kn-darwin-amd64|kn|' -zcf kn-macos-amd64.tar.gz kn-darwin-amd64 LICENSE \
32+
&& tar --transform='flags=r;s|kn-linux-arm64|kn|' -zcf kn-linux-arm64.tar.gz kn-linux-arm64 LICENSE \
33+
&& tar --transform='flags=r;s|kn-darwin-arm64|kn|' -zcf kn-macos-arm64.tar.gz kn-darwin-arm64 LICENSE
34+
35+
RUN mkdir "windows" && mv kn-windows-amd64.exe ./windows/kn.exe && cp LICENSE ./windows/ && zip --quiet --junk-path - windows/* > kn-windows-amd64.zip
36+
37+
# ---------- FINAL RUNTIME IMAGE ----------
38+
FROM $GO_RUNTIME
39+
RUN mkdir -p /usr/share/kn/{linux_amd64,linux_arm64,linux_ppc64le,linux_s390x,macos_amd64,macos_arm64,windows}
40+
41+
COPY --from=builder /workspace/kn-linux-amd64.tar.gz /usr/share/kn/linux_amd64/
42+
COPY --from=builder /workspace/kn-linux-ppc64le.tar.gz /usr/share/kn/linux_ppc64le/
43+
COPY --from=builder /workspace/kn-linux-s390x.tar.gz /usr/share/kn/linux_s390x/
44+
COPY --from=builder /workspace/kn-macos-amd64.tar.gz /usr/share/kn/macos_amd64/
45+
COPY --from=builder /workspace/kn-windows-amd64.zip /usr/share/kn/windows/
46+
COPY --from=builder /workspace/kn-linux-arm64.tar.gz /usr/share/kn/linux_arm64/
47+
COPY --from=builder /workspace/kn-macos-arm64.tar.gz /usr/share/kn/macos_arm64/
48+
COPY --from=builder /workspace/LICENSE /licenses/
49+
50+
USER 65532
51+
52+
LABEL \
53+
com.redhat.component="openshift-serverless-1-client-cli-artifacts-rhel9-container" \
54+
name="openshift-serverless-1/kn-client-cli-artifacts-rhel9" \
55+
version=$VERSION \
56+
summary="Red Hat OpenShift Serverless 1 Client Cli Artifacts" \
57+
maintainer="serverless-support@redhat.com" \
58+
description="Red Hat OpenShift Serverless 1 Client Cli Artifacts" \
59+
io.k8s.display-name="Red Hat OpenShift Serverless 1 Client Cli Artifacts" \
60+
io.k8s.description="Red Hat OpenShift Serverless Client Cli Artifacts" \
61+
io.openshift.tags="cli-artifacts" \
62+
release=$VERSION \
63+
vendor="Red Hat, Inc." \
64+
cpe="cpe:/a:redhat:openshift_serverless:1.XX::el9"
Lines changed: 35 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,38 @@
1-
FROM openshift/origin-base
1+
# DO NOT EDIT! Generated Dockerfile for vendor/knative.dev/serving/test/test_images/grpc-ping.
2+
ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-9-release-golang-1.25-openshift-4.21
3+
ARG GO_RUNTIME=registry.access.redhat.com/ubi9/ubi-minimal
4+
5+
FROM $GO_BUILDER as builder
6+
7+
WORKDIR /workspace
8+
COPY . .
9+
10+
ENV CGO_ENABLED=1
11+
ENV GOEXPERIMENT=strictfipsruntime
12+
13+
RUN go build -tags strictfipsruntime -o /usr/bin/main ./vendor/knative.dev/serving/test/test_images/grpc-ping
14+
15+
FROM $GO_RUNTIME
16+
17+
ARG VERSION=knative-v1.20
18+
19+
COPY --from=builder /usr/bin/main /ko-app/grpc-ping
20+
COPY LICENSE /licenses/
21+
222
USER 65532
323

4-
ADD grpc-ping /ko-app/grpc-ping
24+
LABEL \
25+
com.redhat.component="openshift-serverless-1-client-vendor-knative.dev-serving-test-test-images-grpc-ping-rhel9-container" \
26+
name="openshift-serverless-1/client-vendor-knative.dev-serving-test-test-images-grpc-ping-rhel9" \
27+
version=$VERSION \
28+
summary="Red Hat OpenShift Serverless 1 Client Vendor Knative.Dev Serving Test Test Images Grpc Ping" \
29+
maintainer="serverless-support@redhat.com" \
30+
description="Red Hat OpenShift Serverless 1 Client Vendor Knative.Dev Serving Test Test Images Grpc Ping" \
31+
io.k8s.display-name="Red Hat OpenShift Serverless 1 Client Vendor Knative.Dev Serving Test Test Images Grpc Ping" \
32+
io.k8s.description="Red Hat OpenShift Serverless Client Vendor Knative.Dev Serving Test Test Images Grpc Ping" \
33+
io.openshift.tags="vendor-knative.dev-serving-test-test-images-grpc-ping" \
34+
vendor="Red Hat, Inc." \
35+
release=$VERSION \
36+
cpe="cpe:/a:redhat:openshift_serverless:1.XX::el9"
537

6-
ENTRYPOINT ["/ko-app/grpc-ping"]
38+
ENTRYPOINT ["/ko-app/grpc-ping"]

openshift/ci-operator/knative-test-images/helloworld/Dockerfile

Lines changed: 0 additions & 6 deletions
This file was deleted.
Lines changed: 35 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,38 @@
1-
# Do not edit! This file was generated via Makefile
2-
FROM openshift/origin-base
1+
# DO NOT EDIT! Generated Dockerfile for vendor/knative.dev/serving/test/test_images/multicontainer/servingcontainer.
2+
ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-9-release-golang-1.25-openshift-4.21
3+
ARG GO_RUNTIME=registry.access.redhat.com/ubi9/ubi-minimal
4+
5+
FROM $GO_BUILDER as builder
6+
7+
WORKDIR /workspace
8+
COPY . .
9+
10+
ENV CGO_ENABLED=1
11+
ENV GOEXPERIMENT=strictfipsruntime
12+
13+
RUN go build -tags strictfipsruntime -o /usr/bin/main ./vendor/knative.dev/serving/test/test_images/multicontainer/servingcontainer
14+
15+
FROM $GO_RUNTIME
16+
17+
ARG VERSION=knative-v1.20
18+
19+
COPY --from=builder /usr/bin/main /ko-app/servingcontainer
20+
COPY LICENSE /licenses/
21+
322
USER 65532
423

5-
ADD servingcontainer /ko-app/servingcontainer
24+
LABEL \
25+
com.redhat.component="openshift-serverless-1-client-vendor-knative.dev-serving-test-test-images-multicontainer-servingcontainer-rhel9-container" \
26+
name="openshift-serverless-1/client-vendor-knative.dev-serving-test-test-images-multicontainer-servingcontainer-rhel9" \
27+
version=$VERSION \
28+
summary="Red Hat OpenShift Serverless 1 Client Vendor Knative.Dev Serving Test Test Images Multicontainer Servingcontainer" \
29+
maintainer="serverless-support@redhat.com" \
30+
description="Red Hat OpenShift Serverless 1 Client Vendor Knative.Dev Serving Test Test Images Multicontainer Servingcontainer" \
31+
io.k8s.display-name="Red Hat OpenShift Serverless 1 Client Vendor Knative.Dev Serving Test Test Images Multicontainer Servingcontainer" \
32+
io.k8s.description="Red Hat OpenShift Serverless Client Vendor Knative.Dev Serving Test Test Images Multicontainer Servingcontainer" \
33+
io.openshift.tags="vendor-knative.dev-serving-test-test-images-multicontainer-servingcontainer" \
34+
vendor="Red Hat, Inc." \
35+
release=$VERSION \
36+
cpe="cpe:/a:redhat:openshift_serverless:1.XX::el9"
37+
638
ENTRYPOINT ["/ko-app/servingcontainer"]
Lines changed: 35 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,38 @@
1-
# Do not edit! This file was generated via Makefile
2-
FROM openshift/origin-base
1+
# DO NOT EDIT! Generated Dockerfile for vendor/knative.dev/serving/test/test_images/multicontainer/sidecarcontainer.
2+
ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-9-release-golang-1.25-openshift-4.21
3+
ARG GO_RUNTIME=registry.access.redhat.com/ubi9/ubi-minimal
4+
5+
FROM $GO_BUILDER as builder
6+
7+
WORKDIR /workspace
8+
COPY . .
9+
10+
ENV CGO_ENABLED=1
11+
ENV GOEXPERIMENT=strictfipsruntime
12+
13+
RUN go build -tags strictfipsruntime -o /usr/bin/main ./vendor/knative.dev/serving/test/test_images/multicontainer/sidecarcontainer
14+
15+
FROM $GO_RUNTIME
16+
17+
ARG VERSION=knative-v1.20
18+
19+
COPY --from=builder /usr/bin/main /ko-app/sidecarcontainer
20+
COPY LICENSE /licenses/
21+
322
USER 65532
423

5-
ADD sidecarcontainer /ko-app/sidecarcontainer
24+
LABEL \
25+
com.redhat.component="openshift-serverless-1-client-vendor-knative.dev-serving-test-test-images-multicontainer-sidecarcontainer-rhel9-container" \
26+
name="openshift-serverless-1/client-vendor-knative.dev-serving-test-test-images-multicontainer-sidecarcontainer-rhel9" \
27+
version=$VERSION \
28+
summary="Red Hat OpenShift Serverless 1 Client Vendor Knative.Dev Serving Test Test Images Multicontainer Sidecarcontainer" \
29+
maintainer="serverless-support@redhat.com" \
30+
description="Red Hat OpenShift Serverless 1 Client Vendor Knative.Dev Serving Test Test Images Multicontainer Sidecarcontainer" \
31+
io.k8s.display-name="Red Hat OpenShift Serverless 1 Client Vendor Knative.Dev Serving Test Test Images Multicontainer Sidecarcontainer" \
32+
io.k8s.description="Red Hat OpenShift Serverless Client Vendor Knative.Dev Serving Test Test Images Multicontainer Sidecarcontainer" \
33+
io.openshift.tags="vendor-knative.dev-serving-test-test-images-multicontainer-sidecarcontainer" \
34+
vendor="Red Hat, Inc." \
35+
release=$VERSION \
36+
cpe="cpe:/a:redhat:openshift_serverless:1.XX::el9"
37+
638
ENTRYPOINT ["/ko-app/sidecarcontainer"]

openshift/generate.sh

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
#!/usr/bin/env bash
2+
#
3+
# This script generates the productized Dockerfiles
4+
#
5+
6+
set -o errexit
7+
set -o nounset
8+
set -o pipefail
9+
10+
function install_generate_hack_tool() {
11+
go install github.com/openshift-knative/hack/cmd/generate@latest
12+
return $?
13+
}
14+
15+
function install_sobranch_hack_tool() {
16+
go install github.com/openshift-knative/hack/cmd/sobranch@latest
17+
return $?
18+
}
19+
20+
repo_root_dir=$(dirname "$(realpath "${BASH_SOURCE[0]}")")/..
21+
22+
install_generate_hack_tool || exit 1
23+
install_sobranch_hack_tool || exit 1
24+
25+
# --app-file-fmt is used to mimic ko build, it's assumed in --cmd flag tests
26+
"$(go env GOPATH)"/bin/generate \
27+
--root-dir "${repo_root_dir}" \
28+
--generators dockerfile \
29+
--excludes ".*k8s\\.io.*" \
30+
--excludes ".*knative.dev/pkg/codegen.*" \
31+
--excludes ".*knative.dev/hack/cmd/script.*" \
32+
--app-file-fmt "/ko-app/%s" \
33+
--generate-rpms-lock-file \
34+
--dockerfile-image-builder-fmt "registry.ci.openshift.org/openshift/release:rhel-9-release-golang-1.25-openshift-4.21"
35+
36+
echo "Get Release version and according SO version"
37+
release=$(yq r openshift/project.yaml project.tag)
38+
release=${release/knative-/}
39+
so_branch=$("$(go env GOPATH)"/bin/sobranch --upstream-version="${release}")
40+
so_release=${so_branch/release-/}
41+
42+
echo "Release: $release"
43+
echo "ServerlessOperator Version: $so_release"
44+
45+
# TODO: update to according SO version (we can't do it initially, because the image does not exist at the beginning)
46+
FUNC_UTIL=$(skopeo inspect -n --format '{{.Digest}}' docker://quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-138/kn-plugin-func-func-util:latest --override-os linux --override-arch amd64)
47+
EVENT_SENDER=$(skopeo inspect -n --format '{{.Digest}}' docker://quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-138/kn-plugin-event-sender:latest --override-os linux --override-arch amd64)
48+
49+
echo "func-util sha: ${FUNC_UTIL}"
50+
echo "event-sender sha: ${EVENT_SENDER}"
51+
52+
echo "Update kn image refs"
53+
sed -i "/RUN go build.*/ i \
54+
ENV KN_PLUGIN_FUNC_UTIL_IMAGE=registry.redhat.io/openshift-serverless-1/kn-plugin-func-func-util-rhel9@${FUNC_UTIL}\n\
55+
ENV KN_PLUGIN_EVENT_SENDER_IMAGE=registry.redhat.io/openshift-serverless-1/kn-plugin-event-sender-rhel9@${EVENT_SENDER}" openshift/ci-operator/knative-images/kn/Dockerfile
56+
57+
echo "Update cli-artifacts image refs"
58+
sed -i "s|ENV KN_PLUGIN_FUNC_UTIL_IMAGE.*|ENV KN_PLUGIN_FUNC_UTIL_IMAGE=registry.redhat.io/openshift-serverless-1/kn-plugin-func-func-util-rhel9@${FUNC_UTIL}|g" openshift/ci-operator/knative-images/cli-artifacts/Dockerfile
59+
sed -i "s|ENV KN_PLUGIN_EVENT_SENDER_IMAGE.*|ENV KN_PLUGIN_EVENT_SENDER_IMAGE=registry.redhat.io/openshift-serverless-1/kn-plugin-event-sender-rhel9@${EVENT_SENDER}|g" openshift/ci-operator/knative-images/cli-artifacts/Dockerfile
60+
61+
echo "Update Tag"
62+
sed -i "s|ENV TAG=.*|ENV TAG="${release}".0|g" openshift/ci-operator/knative-images/cli-artifacts/Dockerfile
63+
64+
echo "Update Version arg"
65+
grep -rlZ "ARG VERSION=knative-v" openshift/ci-operator/ | xargs -0 sed -i "s|ARG VERSION=knative-v.*|ARG VERSION=knative-${release}|g"
66+
67+
echo "Update cpe label"
68+
grep -rlZ "cpe:/a:redhat:openshift_serverless:" openshift/ci-operator/ | xargs -0 sed -i "s|cpe=\"cpe:/a:redhat:openshift_serverless:.*\"|cpe=\"cpe:/a:redhat:openshift_serverless:${so_release}::el9\"|g"

openshift/project.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
project:
2+
tag: knative-nightly
3+
imagePrefix: knative-client

0 commit comments

Comments
 (0)