Skip to content

Commit

Permalink
Create downstream container image for konflux (#808)
Browse files Browse the repository at this point in the history
* Create downstream container image for konflux

Signed-off-by: Anand Kumar Singh <[email protected]>

* enable hermetic builds and update containerfile labels

Signed-off-by: Anand Kumar Singh <[email protected]>

* use redhat go-toolset:1.22 image

Signed-off-by: Anand Kumar Singh <[email protected]>

* enable multiarch

Signed-off-by: Anand Kumar Singh <[email protected]>

* use only x86_64 for pull request builds

Signed-off-by: Anand Kumar Singh <[email protected]>

---------

Signed-off-by: Anand Kumar Singh <[email protected]>
  • Loading branch information
anandrkskd authored Nov 28, 2024
1 parent cbdaaad commit b0adb11
Show file tree
Hide file tree
Showing 3 changed files with 91 additions and 2 deletions.
11 changes: 10 additions & 1 deletion .tekton/gitops-operator-pull-request.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@ metadata:
namespace: rh-openshift-gitops-tenant
spec:
params:
- name: build-platforms
value:
- linux/x86_64
- name: git-url
value: '{{source_url}}'
- name: revision
Expand All @@ -27,7 +30,11 @@ spec:
- name: image-expires-after
value: 5d
- name: dockerfile
value: Dockerfile
value: Containerfile.plugin
- name: hermetic
value: true
- name: prefetch-input
value: '{"type": "gomod", "path": "."}'
pipelineSpec:
finally:
- name: show-sbom
Expand Down Expand Up @@ -228,6 +235,8 @@ spec:
- $(params.build-args[*])
- name: BUILD_ARGS_FILE
value: $(params.build-args-file)
- name: TARGET_VERSION
value: '{{target_branch}}'
runAfter:
- prefetch-dependencies
taskRef:
Expand Down
14 changes: 13 additions & 1 deletion .tekton/gitops-operator-push.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,24 @@ metadata:
namespace: rh-openshift-gitops-tenant
spec:
params:
- name: build-platforms
value:
- linux/x86_64
- linux/arm64
- linux/ppc64le
- linux/s390x
- name: git-url
value: '{{source_url}}'
- name: revision
value: '{{revision}}'
- name: output-image
value: quay.io/redhat-user-workloads/rh-openshift-gitops-tenant/openshift-gitops-operator/gitops-operator:{{revision}}
- name: dockerfile
value: Dockerfile
value: Containerfile.plugin
- name: hermetic
value: true
- name: prefetch-input
value: '{"type": "gomod", "path": "."}'
pipelineSpec:
finally:
- name: show-sbom
Expand Down Expand Up @@ -220,6 +230,8 @@ spec:
value: $(params.image-expires-after)
- name: COMMIT_SHA
value: $(tasks.clone-repository.results.commit)
- name: TARGET_VERSION
value: '{{target_branch}}'
- name: BUILD_ARGS
value:
- $(params.build-args[*])
Expand Down
68 changes: 68 additions & 0 deletions Containerfile.plugin
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# Copyright 2021 Red Hat
#
# 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 registry.redhat.io/rhel8/go-toolset:1.22.7-5.1731464728 AS builder

ENV LANG=en_US.utf8
ENV GIT_COMMITTER_NAME devtools
ENV GIT_COMMITTER_EMAIL [email protected]
LABEL com.redhat.delivery.appregistry=true

WORKDIR /gitops-operator

COPY go.mod go.mod
COPY go.sum go.sum
# cache deps before building and copying source so that we don't need to re-download as much
# and so that source changes don't invalidate our downloaded layer
RUN go mod download

# Copy the go source
COPY cmd/main.go cmd/main.go
COPY api/ api/
COPY controllers/ controllers/
COPY common/ common/
COPY version/ version/

ARG VERBOSE=2
ENV GOFLAGS="-mod=mod"
RUN go build -o bin/manager ./cmd/main.go

FROM registry.access.redhat.com/ubi8/ubi-minimal
ENV LANG=en_US.utf8
COPY --from=builder /gitops-operator/bin/manager /usr/local/bin/manager
# Redis HA script templates
COPY build/redis /var/lib/redis
USER 10001
ENTRYPOINT [ "/usr/local/bin/manager" ]

LABEL \
name="openshift-gitops-1/gitops-rhel8-operator" \
version=${TARGET_VERSION} \
License="Apache 2.0" \
com.redhat.component="openshift-gitops-operator-container" \
com.redhat.delivery.appregistry="false" \
release=${CI_CONTAINER_RELEASE} \
upstream-version=${CI_UPSTREAM_VERSION} \
upstream-vcs-ref="${COMMIT_SHA}" \
upstream-vcs-type="git" \
summary="Openshift GitOps Operator Dockerfile Template" \
maintainer="William Tam <[email protected]>" \
io.openshift.tags="openshift,gitops-operator" \
io.k8s.display-name="Red Hat OpenShift GitOps Operator" \
io.k8s.description="Red Hat OpenShift GitOps Operator" \
io.openshift.maintainer.product="Red Hat OpenShift GitOps" \
io.openshift.maintainer.component="William Tam <[email protected]>"

0 comments on commit b0adb11

Please sign in to comment.