This repository contains Konflux configuration to build Red Hat build OpenShift distributed tracing platform (Jaeger).
docker login brew.registry.redhat.io -u
docker login registry.redhat.io -u
git submodule update --init --recursive
podman build -t docker.io/user/jaeger-operator:$(date +%s) -f Dockerfile.operator
Update all base images (merge renovatebot PRs).
Create a PR Release - update upstream sources x.y
:
- Update git submodules with upstream versions
- Update rpm lockfiles
rpm-lockfile-prototype --arch x86_64 --arch aarch64 --arch s390x --arch ppc64le -f Dockerfile.operator rpms.in.yaml --outfile rpms.lock.yaml cd bundle-patch; rpm-lockfile-prototype --arch x86_64 rpms.in.yaml --outfile rpms.lock.yaml
Wait for renovatebot to create PRs to update the hash in the bundle-patch/update_bundle.sh
file, and merge all of them.
Create a PR Release - update bundle version x.y
and update patch_csv.yaml by submitting a PR with follow-up changes:
metadata.name
with the current version e.g.jaeger-operator.v1.58.0-1
metadata.extra_annotations.olm.skipRange
with the version being productized e.g.'>=0.33.0 <1.58.0-1'
spec.version
with the current version e.g.jaeger-operator.v1.58.0-1
spec.replaces
with the previous shipped version of CSV e.g.jaeger-operator.v1.57.0-1
- Update
release
,version
andcom.redhat.openshift.versions
(minimum OCP version) labels in bundle dockerfile - Verify diff of upstream and downstream ClusterServiceVersion
podman build -t jaeger-bundle -f Dockerfile.bundle . && podman cp $(podman create jaeger-bundle):/manifests/jaeger-operator.clusterserviceversion.yaml . git diff --no-index jaeger-operator/bundle/manifests/jaeger-operator.clusterserviceversion.yaml jaeger-operator.clusterserviceversion.yaml rm jaeger-operator.clusterserviceversion.yaml
Once the PR is merged and bundle is built, create another PR Release - update catalog x.y
with:
- Updated catalog template with the new bundle (get the bundle pullspec from Konflux):
opm alpha render-template basic --output yaml --migrate-level bundle-object-to-csv-metadata catalog/catalog-template.yaml > catalog/jaeger-product-4.17/catalog.yaml && \ opm alpha render-template basic --output yaml catalog/catalog-template.yaml > catalog/jaeger-product/catalog.yaml && \ sed -i 's#quay.io/redhat-user-workloads/rhosdt-tenant/otel/jaeger-bundle#registry.redhat.io/rhosdt/jaeger-operator-bundle#g' catalog/jaeger-product-4.17/catalog.yaml && \ sed -i 's#quay.io/redhat-user-workloads/rhosdt-tenant/otel/jaeger-bundle#registry.redhat.io/rhosdt/jaeger-operator-bundle#g' catalog/jaeger-product/catalog.yaml && \ opm validate catalog/jaeger-product && \ opm validate catalog/jaeger-product-4.17
Images can be found at https://quay.io/organization/redhat-user-workloads (search for rhosdt-tenant/jaeger
).
operator-sdk olm install
# get latest image pullspec from https://console.redhat.com/application-pipeline/workspaces/rhosdt/applications/jaeger/components/jaeger-bundle-quay
operator-sdk run bundle quay.io/redhat-user-workloads/rhosdt-tenant/jaeger/jaeger-bundle-quay@sha256:10b2bfbb9bd4b0dd6ae5093d95f9766862c6148a5f88139ccb99dc413d4a32c1
operator-sdk cleanup jaeger-product
podman cp $(podman create --name tc registry.redhat.io/redhat/redhat-operator-index:v4.17):/configs/jaeger-product jaeger-product-4.17 && podman rm tc
opm migrate jaeger-product-4.17 jaeger-product-4.17-migrated
opm alpha convert-template basic --output yaml ./jaeger-product-4.17-migrated/jaeger-product/catalog.json > catalog/catalog-template.yaml