Skip to content

Commit

Permalink
Add downstream container files and update the konflux pipeline
Browse files Browse the repository at this point in the history
Signed-off-by: Mohamed Mahmoud <mmahmoud@redhat.com>
  • Loading branch information
msherif1234 committed Aug 9, 2024
1 parent 3a5dec9 commit 93db2b3
Show file tree
Hide file tree
Showing 6 changed files with 85 additions and 4 deletions.
2 changes: 1 addition & 1 deletion .tekton/bpfman-agent-pull-request.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ spec:
- name: image-expires-after
value: 5d
- name: dockerfile
value: Containerfile.bpfman-agent
value: Containerfile.bpfman-agent.openshift
pipelineSpec:
finally:
- name: show-sbom
Expand Down
2 changes: 1 addition & 1 deletion .tekton/bpfman-agent-push.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ spec:
- name: output-image
value: quay.io/redhat-user-workloads/ocp-bpfman-tenant/bpfman-operator/bpfman-agent:{{revision}}
- name: dockerfile
value: Containerfile.bpfman-agent
value: Containerfile.bpfman-agent.openshift
pipelineSpec:
finally:
- name: show-sbom
Expand Down
2 changes: 1 addition & 1 deletion .tekton/bpfman-operator-pull-request.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ spec:
- name: image-expires-after
value: 5d
- name: dockerfile
value: Containerfile.bpfman-operator
value: Containerfile.bpfman-operator.openshift
pipelineSpec:
finally:
- name: show-sbom
Expand Down
2 changes: 1 addition & 1 deletion .tekton/bpfman-operator-push.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ spec:
- name: output-image
value: quay.io/redhat-user-workloads/ocp-bpfman-tenant/bpfman-operator/bpfman-operator:{{revision}}
- name: dockerfile
value: Containerfile.bpfman-operator
value: Containerfile.bpfman-operator.openshift
pipelineSpec:
finally:
- name: show-sbom
Expand Down
42 changes: 42 additions & 0 deletions Containerfile.bpfman-agent.openshift
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Build the manager binary
ARG BUILDPLATFORM=linux/amd64

FROM --platform=$BUILDPLATFORM brew.registry.redhat.io/rh-osbs/openshift-golang-builder:v1.22.5-202407301806.g4c8b32d.el9 AS bpfman-agent-build

# The following ARGs are set internally by docker/build-push-action in github actions
ARG TARGETOS
ARG TARGETARCH
ARG TARGETPLATFORM

RUN echo "TARGETOS=${TARGETOS} TARGETARCH=${TARGETARCH} BUILDPLATFORM=${BUILDPLATFORM} TARGETPLATFORM=${TARGETPLATFORM}"

WORKDIR /usr/src/bpfman-operator

# Copy everything except what's excluded by the .dockerignore file.
COPY . .

# Build
# the GOARCH has not a default value to allow the binary be built according to the host where the command
# was called. For example, if we call make docker-build in a local env which has the Apple Silicon M1 SO
# the docker BUILDPLATFORM arg will be linux/arm64 when for Apple x86 it will be linux/amd64. Therefore,
# by leaving it empty we can ensure that the container and binary shipped on it will have the same platform.
RUN CGO_ENABLED=0 GOOS=${TARGETOS:-linux} GOARCH=${TARGETARCH} go build -mod vendor -o bpfman-agent ./cmd/bpfman-agent/main.go

FROM --platform=$TARGETPLATFORM registry.access.redhat.com/ubi9/ubi-minimal:9.4
ARG DNF_CMD="dnf"

ARG TARGETARCH
ARG TARGETPLATFORM

WORKDIR /
COPY --from=bpfman-agent-build /usr/src/bpfman-operator/bpfman-agent .

# Install crictl
RUN ${DNF_CMD} -y install wget tar gzip ca-certificates
ARG VERSION="v1.28.0"
RUN wget https://github.com/kubernetes-sigs/cri-tools/releases/download/${VERSION}/crictl-${VERSION}-linux-${TARGETARCH}.tar.gz
RUN tar zxvf crictl-${VERSION}-linux-${TARGETARCH}.tar.gz -C /usr/local/bin
RUN rm -f crictl-${VERSION}-linux-${TARGETARCH}.tar.gz
RUN ${DNF_CMD} -y clean all

ENTRYPOINT ["/bpfman-agent"]
39 changes: 39 additions & 0 deletions Containerfile.bpfman-operator.openshift
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Build the manager binary
ARG BUILDPLATFORM=linux/amd64

FROM --platform=$BUILDPLATFORM brew.registry.redhat.io/rh-osbs/openshift-golang-builder:v1.22.5-202407301806.g4c8b32d.el9 AS bpfman-operator-build

ARG BUILDPLATFORM

# The following ARGs are set internally by docker/build-push-action in github actions
ARG TARGETOS
ARG TARGETARCH
ARG TARGETPLATFORM

RUN echo "TARGETOS=${TARGETOS} TARGETARCH=${TARGETARCH} BUILDPLATFORM=${BUILDPLATFORM} TARGETPLATFORM=${TARGETPLATFORM}"

WORKDIR /usr/src/bpfman-operator

# Copy everything except what's excluded by the .dockerignore file.
COPY . .

# Build
# the GOARCH has not a default value to allow the binary be built according to the host where the command
# was called. For example, if we call make docker-build in a local env which has the Apple Silicon M1 SO
# the docker BUILDPLATFORM arg will be linux/arm64 when for Apple x86 it will be linux/amd64. Therefore,
# by leaving it empty we can ensure that the container and binary shipped on it will have the same platform.
RUN CGO_ENABLED=0 GOOS=${TARGETOS:-linux} GOARCH=${TARGETARCH} go build -mod vendor -o bpfman-operator ./cmd/bpfman-operator/main.go

FROM --platform=$TARGETPLATFORM registry.access.redhat.com/ubi9/ubi-minimal:9.4

# The following ARGs are set internally by docker or podman on multiarch builds
ARG TARGETPLATFORM

WORKDIR /
COPY --from=bpfman-operator-build /usr/src/bpfman-operator/config/bpfman-deployment/daemonset.yaml ./config/bpfman-deployment/daemonset.yaml
COPY --from=bpfman-operator-build /usr/src/bpfman-operator/config/bpfman-deployment/csidriverinfo.yaml ./config/bpfman-deployment/csidriverinfo.yaml
COPY --from=bpfman-operator-build /usr/src/bpfman-operator/config/openshift/restricted-scc.yaml ./config/openshift/restricted-scc.yaml
COPY --from=bpfman-operator-build /usr/src/bpfman-operator/bpfman-operator .
USER 65532:65532

ENTRYPOINT ["/bpfman-operator"]

0 comments on commit 93db2b3

Please sign in to comment.