From 07457198fae6a4b2ff99e45523f30620cb22f00f Mon Sep 17 00:00:00 2001 From: Anwardeen A Date: Fri, 3 Jul 2026 15:01:31 +0530 Subject: [PATCH 1/3] Fixing numeric UID in DockerFile and Boilerplate Update --- .ci-operator.yaml | 2 +- .tekton/OWNERS | 4 - OWNERS | 3 +- OWNERS_ALIASES | 66 ++++---- boilerplate/_data/backing-image-tag | 2 +- boilerplate/_data/last-boilerplate-commit | 2 +- boilerplate/_lib/container-make | 7 +- boilerplate/_lib/subscriber-propose-update | 141 ++++++++++++++---- boilerplate/openshift/golang-osd-e2e/OWNERS | 4 +- boilerplate/openshift/golang-osd-e2e/update | 11 +- .../golang-osd-operator/OWNERS_ALIASES | 66 ++++---- .../golang-osd-operator/dependabot.yml | 5 + .../golang-osd-operator/docs/pre-commit.md | 11 +- .../openshift/golang-osd-operator/update | 65 ++++++-- build/Dockerfile | 10 +- build/Dockerfile.olm-registry | 2 +- test/e2e/Dockerfile | 2 +- 17 files changed, 279 insertions(+), 124 deletions(-) delete mode 100644 .tekton/OWNERS diff --git a/.ci-operator.yaml b/.ci-operator.yaml index 188626d7..8f00d38a 100644 --- a/.ci-operator.yaml +++ b/.ci-operator.yaml @@ -1,4 +1,4 @@ build_root_image: name: boilerplate namespace: openshift - tag: image-v8.3.6 + tag: image-v8.4.1 diff --git a/.tekton/OWNERS b/.tekton/OWNERS deleted file mode 100644 index c0c694ae..00000000 --- a/.tekton/OWNERS +++ /dev/null @@ -1,4 +0,0 @@ -reviewers: -- srep-infra-cicd -approvers: -- srep-infra-cicd diff --git a/OWNERS b/OWNERS index c7cb91fe..05ed974e 100644 --- a/OWNERS +++ b/OWNERS @@ -3,8 +3,7 @@ approvers: - bergmannf - tkong-redhat - rbhilare -- srep-functional-leads -- srep-team-leads +- rosa-staff-engineers reviewers: - iamkirkbater - bergmannf diff --git a/OWNERS_ALIASES b/OWNERS_ALIASES index 7fddbfa2..0ad2d365 100644 --- a/OWNERS_ALIASES +++ b/OWNERS_ALIASES @@ -26,7 +26,6 @@ aliases: - cjnovak98 srep-functional-team-hulk: - ravitri - - devppratik - Tafhim - tkong-redhat - TheUndeadKing @@ -51,15 +50,6 @@ aliases: - Mhodesty - nephomaniac - tnierman - srep-functional-team-security: - - jaybeeunix - - sam-nguyen7 - - wshearn - - dem4gus - - npecka - - pshickeydev - - casey-williams-rh - - boranx srep-functional-team-thor: - diakovnec - MitaliBhalla @@ -68,26 +58,42 @@ aliases: - xiaoyu74 - Tessg22 - smarthall - srep-infra-cicd: - - ritmun - - yiqinzhang - - varunraokadaparthi - srep-functional-leads: - - clcollins + rosa-staff-engineers: + - Ajpantuso - bergmannf - - theautoroboto - - smarthall - - sam-nguyen7 - - ravitri - srep-team-leads: - - rafael-azevedo - - iamkirkbater - - dustman9000 - bmeng + - bpresnel-rh + - cdoan1 + - clcollins + - dustman9000 + - joshbranham + - jmelis + - lucasponce + - psav + - rafael-azevedo + - ravitri + - rbhilare + - robpblake + - smarthall + - syed + - theautoroboto + - tiwillia - typeid - sre-group-leads: - - apahim - - maorfr - - rogbas - srep-architects: - - cblecker + rosa-managers: + - afreiberger + - c-e-brumm + - drewandersonnz + - evalis1 + - geowa4 + - jcaianirh + - jnewton75 + - krishvoor + - kseiter-rh + - OliviaHY + - syncrou + - tdrozdowski + - tkiss28 + - vkumar51 + hp-architects: + - deads2k + - jhjaggars diff --git a/boilerplate/_data/backing-image-tag b/boilerplate/_data/backing-image-tag index ca21d244..f7a28f51 100644 --- a/boilerplate/_data/backing-image-tag +++ b/boilerplate/_data/backing-image-tag @@ -1 +1 @@ -image-v8.3.6 +image-v8.4.1 diff --git a/boilerplate/_data/last-boilerplate-commit b/boilerplate/_data/last-boilerplate-commit index e1285a81..6befe409 100644 --- a/boilerplate/_data/last-boilerplate-commit +++ b/boilerplate/_data/last-boilerplate-commit @@ -1 +1 @@ -1cb129aed5a91f2098f70c0e141561e00b1e16fc +00d8a1c7487680d8ced308bea3468ca7f89ab866 diff --git a/boilerplate/_lib/container-make b/boilerplate/_lib/container-make index 77834586..8da20031 100755 --- a/boilerplate/_lib/container-make +++ b/boilerplate/_lib/container-make @@ -29,12 +29,14 @@ if [[ "${CONTAINER_ENGINE##*/}" == "podman" ]] && [[ $OSTYPE == *"linux"* ]]; th else CE_OPTS="${CE_OPTS} -v $REPO_ROOT:$CONTAINER_MOUNT" fi -container_id=$($CONTAINER_ENGINE run -d ${CE_OPTS} $IMAGE_PULL_PATH sleep infinity) +container_id=$($CONTAINER_ENGINE run --rm -d ${CE_OPTS} $IMAGE_PULL_PATH sleep infinity) if [[ $? -ne 0 ]] || [[ -z "$container_id" ]]; then err "Couldn't start detached container" fi +trap "$CONTAINER_ENGINE stop $container_id >/dev/null 2>&1" EXIT + # Now run our `make` command in it with the right UID and working directory args="exec -it -u $(id -u):0 -w $CONTAINER_MOUNT $container_id" banner "Running: make $@" @@ -52,6 +54,9 @@ if [[ $rc -ne 0 ]]; then fi fi +# Disarm the interrupt trap -- normal cleanup handles it from here +trap - EXIT + # Finally, remove the container banner "Cleaning up the container" $CONTAINER_ENGINE rm -f $container_id >/dev/null diff --git a/boilerplate/_lib/subscriber-propose-update b/boilerplate/_lib/subscriber-propose-update index f3b06ef2..4ac51256 100755 --- a/boilerplate/_lib/subscriber-propose-update +++ b/boilerplate/_lib/subscriber-propose-update @@ -25,7 +25,7 @@ Quirks and Limitations: - Is still slightly interactive, because 'gh pr create' likes to ask questions about your origin and upstream. EOF - exit -1 + exit 1 } source $REPO_ROOT/boilerplate/_lib/subscriber.sh @@ -34,47 +34,101 @@ source $REPO_ROOT/boilerplate/_lib/subscriber.sh [[ $# -eq 0 ]] && usage TMPD=$(mktemp -d) +echo $TMPD; trap "rm -fr $TMPD" EXIT +run_step() { + local title=$1 + local log_file="$TMPD/$title.log" + log_file=$(tr '[:upper:]' '[:lower:]' <<< "$log_file") + log_file=$(tr ' ' '-' <<< "$log_file") + shift + + if [[ $1 != "--" ]]; then + echo "ERR: expected '--' but got '$1'" + exit 1 + fi + shift + echo -n "$title... " + + if ! "$@" > "$log_file" 2>&1; then + echo " FAILED" + echo "!!!" + echo "!!! Boilerplate update failed for $subscriber" + echo "!!!" + echo "" + cat "$log_file" + exit 1 + fi + echo " DONE" +} + +sync_main() { + local main_branch=$1 + shift + + git pull upstream $main_branch + git push origin $main_branch +} + +git_clean_and_push() { + local branch=$1 + shift + + git push --delete origin $branch || true + git push -u origin $branch +} + propose_update() { local subscriber=$1 local proj=${subscriber#*/} - if [[ -z "$DRY_RUN" ]]; then - echo "DRY RUN: Would propose update for $subscriber" - return 0 - fi - ( # Clone my fork of the subscriber repo cd $TMPD # This # - uses the existing fork if one exists # - sets 'origin' and 'upstream' remotes - gh repo fork $subscriber --clone=true --remote=true + # only clones the default branch to save disk space and time + + run_step "Creating fork" -- gh repo fork $subscriber --clone=true --default-branch-only cd $proj - # Current branch is 'master' or 'main' - cur_branch=$(current_branch .) - # Make sure our origin is synced with upstream, so our update - # commit is based off of the latest code. - # WARNING: This changes your fork! - git pull upstream $cur_branch - git push origin $cur_branch - - # Create the update commit - make boilerplate-update - make boilerplate-commit - - # And create the PR - # TODO: This is interactive. How do we tell gh "Yes, please use - # upstream as upstream and origin as origin?" - gh pr create -f + # Current branch is 'master' or 'main' or 'trunk' + main_branch=$(current_branch .) + run_step "Syncing Fork" -- sync_main $main_branch + # run_step "Pushing fork" -- git push origin $main_branch + + # Create the update commit - only cat logs if something goes wrong. + run_step "Updating boilerplate" -- make boilerplate-update + run_step "Committing boilerplate update" -- make boilerplate-commit + + boilerplate_branch=$(git rev-parse --abbrev-ref HEAD) + # By pushing to the origin boilerplate branch explicitly before opening a PR, + # we make don't get prompted for the branch to push to. + # If we still find that it's giving us an interactive prompt, we can otherwise + # use `gh api` to create the PR programmatically. + if [[ "$boilerplate_branch" == "$main_branch" ]]; then + echo "CRITICAL ERROR: boilerplate branch '$boilerplate_branch' is the same as main branch '$main_branch'" + echo "If you see this, something has gone terribly wrong" + echo "Skipping" + exit 20 + fi + run_step "pushing update" -- git_clean_and_push $boilerplate_branch + + gh pr create --repo $subscriber -f $DRY_RUN_FLAG ) } bp_master=$(git rev-parse master) +DRY_RUN_FLAG="" +if [[ -z "$DRY_RUN" ]]; then + echo "DRY RUN: ENABLED" + DRY_RUN_FLAG="--dry-run" +fi + + for subscriber in $(subscriber_args "$@"); do # Does this one need an update? @@ -89,14 +143,45 @@ for subscriber in $(subscriber_args "$@"); do continue fi - # Is there already a PR proposed for this level? - existing_pr=$(gh pr list --repo $subscriber | grep -P ":boilerplate-\S+-$bp_master\s") + # Is there already a PR proposed for this commit? + pr_list=$(gh pr list --repo $subscriber --json headRefName,url,number | jq -r '. | map(select(.headRefName | startswith("boilerplate-update--")))') + existing_pr=$(jq -r ".[] | select(.headRefName == \"boilerplate-update--$bp_master\")" <<< "$pr_list") if [[ -n "$existing_pr" ]]; then - echo "Subscriber '$subscriber' already has an open PR:" - echo "https://github.com/$subscriber/pull/$existing_pr" + echo "Subscriber '$subscriber' already has an open PR for this boilerplate commit:" + jq -r .url <<< "$existing_pr" continue fi # Pull the trigger - propose_update "$subscriber" + if ! propose_update "$subscriber"; then + echo "Error: failed to propose update for '$subscriber'" + continue + fi + + new_pr="XXXX" + # Get the new PR URL + # only run if not dry-run - otherwise the new_pr var will be empty + if [[ -n $DRY_RUN ]]; then + new_pr=$(gh pr list --repo $subscriber --json headRefName,number | jq -r ".[] | select(.headRefName == \"boilerplate-update--$bp_master\") | .number") + if [[ -z "$new_pr" ]]; then + echo "error: unable to find new PR for boilerplate update '$bp_master' on subscriber '$subscriber'" + continue + fi + fi + + # Add comments to existing PRs to say they're superseded by this new one + if [[ -n "$pr_list" ]]; then + prs=$(jq -r '. | map(.number) | @tsv' <<< "$pr_list") + echo "Closing old PRs: $prs" + for pr in $prs; do + if [[ -z $DRY_RUN ]]; then + echo "Dry run - would close $pr with comment:" + echo " \"Superseded by #$new_pr.\"" + continue + fi + + gh pr close --repo $subscriber --comment "Superseded by #$new_pr." $pr + done + fi + done diff --git a/boilerplate/openshift/golang-osd-e2e/OWNERS b/boilerplate/openshift/golang-osd-e2e/OWNERS index c0c694ae..0287d7e1 100644 --- a/boilerplate/openshift/golang-osd-e2e/OWNERS +++ b/boilerplate/openshift/golang-osd-e2e/OWNERS @@ -1,4 +1,4 @@ reviewers: -- srep-infra-cicd +- rosa-staff-engineers approvers: -- srep-infra-cicd +- rosa-staff-engineers diff --git a/boilerplate/openshift/golang-osd-e2e/update b/boilerplate/openshift/golang-osd-e2e/update index b0a516a3..df9b1593 100755 --- a/boilerplate/openshift/golang-osd-e2e/update +++ b/boilerplate/openshift/golang-osd-e2e/update @@ -12,8 +12,13 @@ source $CONVENTION_ROOT/_lib/common.sh REPO_ROOT=$(git rev-parse --show-toplevel) OPERATOR_NAME=$(sed -n 's/.*OperatorName .*=.*"\([^"]*\)".*/\1/p' "${REPO_ROOT}/config/config.go") +GO_MODULE_PATH=$(awk '/^module / { print $2; exit }' "${REPO_ROOT}/go.mod") E2E_SUITE_DIRECTORY=$REPO_ROOT/test/e2e +if [[ -z "${GO_MODULE_PATH}" ]]; then + err "Could not read module path from ${REPO_ROOT}/go.mod" +fi + # Update operator name in templates OPERATOR_UNDERSCORE_NAME=${OPERATOR_NAME//-/_} OPERATOR_PROPER_NAME=$(echo "$OPERATOR_NAME" | sed 's/-/ /g' | awk '{for(i=1;i<=NF;i++){ $i=toupper(substr($i,1,1)) substr($i,2) }}1') @@ -21,16 +26,16 @@ OPERATOR_NAME_CAMEL_CASE=${OPERATOR_PROPER_NAME// /} mkdir -p "${E2E_SUITE_DIRECTORY}" -E2E_SUITE_BUILDER_IMAGE=registry.ci.openshift.org/openshift/release:rhel-9-release-golang-1.25-openshift-4.21 +E2E_SUITE_BUILDER_IMAGE=registry.ci.openshift.org/openshift/release:rhel-9-release-golang-1.26-openshift-4.22 if [[ -n ${KONFLUX_BUILDS} ]]; then - E2E_SUITE_BUILDER_IMAGE="brew.registry.redhat.io/rh-osbs/openshift-golang-builder:rhel_9_1.25" + E2E_SUITE_BUILDER_IMAGE="brew.registry.redhat.io/rh-osbs/openshift-golang-builder:rhel_9_1.26" fi echo "syncing ${E2E_SUITE_DIRECTORY}/Dockerfile" tee "${E2E_SUITE_DIRECTORY}/Dockerfile" <"${REPO_ROOT}/.tekton/OWNERS" < rosa-staff-engineers in ${owners_file}" + ${SED?} -i 's/srep-functional-leads/rosa-staff-engineers/g' "${owners_file}" + changed=true + fi + if grep -q 'srep-architects' "${owners_file}"; then + echo "Renaming srep-architects -> hp-architects in ${owners_file}" + ${SED?} -i 's/srep-architects/hp-architects/g' "${owners_file}" + changed=true + fi + for stale in srep-team-leads sre-group-leads; do + if grep -q "${stale}" "${owners_file}"; then + echo "Removing ${stale} from ${owners_file}" + ${SED?} -i "/${stale}/d" "${owners_file}" + changed=true + fi + done + for stale in srep-functional-team-security srep-infra-cicd; do + if grep -q "${stale}" "${owners_file}"; then + echo "WARNING: Removing ${stale} from ${owners_file} (alias no longer exists, no direct replacement)" + ${SED?} -i "/${stale}/d" "${owners_file}" + NEEDS_REVIEW+=("${owners_file}: ${stale} was removed with no replacement. Please add appropriate reviewers/approvers.") + changed=true + fi + done + if [[ "${changed}" == "true" ]]; then + if ! grep -qE "^\s*-\s+\S" "${owners_file}"; then + echo "Removing ${owners_file} (no owners remain after cleanup)" + rm "${owners_file}" + fi + OWNERS_UPDATED+=("${owners_file}") + fi +done < <(find "${REPO_ROOT}" -name 'OWNERS' -not -path '*/.git/*' -not -path '*/boilerplate/*' -print0) + +if [[ ${#OWNERS_UPDATED[@]} -gt 0 ]]; then + echo "" + echo "=====================" + echo "NOTICE: Boilerplate updated the following OWNERS files to migrate stale aliases:" + for f in "${OWNERS_UPDATED[@]}"; do + echo " - ${f}" + done + echo "" + echo "Please review these files to ensure the changes are correct." + if [[ ${#NEEDS_REVIEW[@]} -gt 0 ]]; then + echo "" + echo "ACTION REQUIRED:" + for msg in "${NEEDS_REVIEW[@]}"; do + echo " - ${msg}" + done + fi + echo "=====================" fi # Add dependabot configuration diff --git a/build/Dockerfile b/build/Dockerfile index d10e304b..566a1a30 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -1,4 +1,4 @@ -FROM quay.io/redhat-services-prod/openshift/boilerplate:image-v8.3.6 AS builder +FROM quay.io/redhat-services-prod/openshift/boilerplate:image-v8.4.1 AS builder WORKDIR /workspace # Copy the Go Modules manifests @@ -18,9 +18,13 @@ RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 GO111MODULE=on go build -mod=mod -a -o # Use distroless as minimal base image to package the manager binary # Refer to https://github.com/GoogleContainerTools/distroless for more details -FROM registry.access.redhat.com/ubi9/ubi-minimal:9.8-1780378819 +FROM registry.access.redhat.com/ubi9/ubi-minimal:9.8-1782797275 + +ENV USER_UID=1001 \ + USER_NAME=managed-node-metadata-operator + WORKDIR / COPY --from=builder /workspace/manager . -USER nonroot:nonroot +USER ${USER_UID} ENTRYPOINT ["/manager"] diff --git a/build/Dockerfile.olm-registry b/build/Dockerfile.olm-registry index 408bc99d..4a298c49 100644 --- a/build/Dockerfile.olm-registry +++ b/build/Dockerfile.olm-registry @@ -4,7 +4,7 @@ COPY ${SAAS_OPERATOR_DIR} manifests RUN initializer --permissive # ubi-micro does not work for clusters with fips enabled unless we make OpenSSL available -FROM registry.access.redhat.com/ubi9/ubi-minimal:9.8-1780378819 +FROM registry.access.redhat.com/ubi9/ubi-minimal:9.8-1782797275 COPY --from=builder /bin/registry-server /bin/registry-server COPY --from=builder /bin/grpc_health_probe /bin/grpc_health_probe diff --git a/test/e2e/Dockerfile b/test/e2e/Dockerfile index 852051c3..99d3b046 100644 --- a/test/e2e/Dockerfile +++ b/test/e2e/Dockerfile @@ -1,5 +1,5 @@ # THIS FILE IS GENERATED BY BOILERPLATE. DO NOT EDIT. -FROM brew.registry.redhat.io/rh-osbs/openshift-golang-builder:rhel_9_1.25 as builder +FROM registry.ci.openshift.org/openshift/release:rhel-9-release-golang-1.26-openshift-4.22 as builder WORKDIR /go/src/github.com/openshift/managed-node-metadata-operator/ COPY . . RUN CGO_ENABLED=0 GOFLAGS="-mod=mod" go test ./test/e2e -v -c --tags=osde2e -o /e2e.test From 88e605d86ea7451e87f00ee708ad701de41775c4 Mon Sep 17 00:00:00 2001 From: Anwardeen A Date: Fri, 3 Jul 2026 15:21:14 +0530 Subject: [PATCH 2/3] fix: revert the url to trusted image registry --- test/e2e/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/e2e/Dockerfile b/test/e2e/Dockerfile index 99d3b046..6cb5cc4a 100644 --- a/test/e2e/Dockerfile +++ b/test/e2e/Dockerfile @@ -1,5 +1,5 @@ # THIS FILE IS GENERATED BY BOILERPLATE. DO NOT EDIT. -FROM registry.ci.openshift.org/openshift/release:rhel-9-release-golang-1.26-openshift-4.22 as builder +FROM brew.registry.redhat.io/rh-osbs/openshift-golang-builder:rhel_9_1.26 as builder WORKDIR /go/src/github.com/openshift/managed-node-metadata-operator/ COPY . . RUN CGO_ENABLED=0 GOFLAGS="-mod=mod" go test ./test/e2e -v -c --tags=osde2e -o /e2e.test From ab8bcc0a3a191d8afa28e5685594508a9f720890 Mon Sep 17 00:00:00 2001 From: Anwardeen A Date: Fri, 3 Jul 2026 15:43:21 +0530 Subject: [PATCH 3/3] chore: update Go dependencies --- go.mod | 33 ++++++++++++------------- go.sum | 78 ++++++++++++++++++++++++++++------------------------------ 2 files changed, 54 insertions(+), 57 deletions(-) diff --git a/go.mod b/go.mod index b5189d78..4f22b103 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ require ( github.com/onsi/ginkgo/v2 v2.31.0 github.com/onsi/gomega v1.42.0 github.com/openshift-online/ocm-sdk-go v0.1.503 - github.com/openshift/api v0.0.0-20260624175654-50c3975e874f // release-4.20 + github.com/openshift/api v0.0.0-20260702202555-ef71f942ef6c // release-4.20 github.com/openshift/osde2e-common v0.0.0-20260618165637-751e0d23bb9d github.com/prometheus/client_golang v1.23.2 k8s.io/api v0.36.2 @@ -32,20 +32,19 @@ require ( github.com/fxamacker/cbor/v2 v2.9.2 // indirect github.com/go-logr/logr v1.4.3 // indirect github.com/go-logr/zapr v1.3.0 // indirect - github.com/go-openapi/jsonpointer v0.23.1 // indirect + github.com/go-openapi/jsonpointer v0.24.0 // indirect github.com/go-openapi/jsonreference v0.21.6 // indirect - github.com/go-openapi/swag v0.26.1 // indirect - github.com/go-openapi/swag/cmdutils v0.26.1 // indirect - github.com/go-openapi/swag/conv v0.26.1 // indirect - github.com/go-openapi/swag/fileutils v0.26.1 // indirect - github.com/go-openapi/swag/jsonname v0.26.1 // indirect - github.com/go-openapi/swag/jsonutils v0.26.1 // indirect - github.com/go-openapi/swag/loading v0.26.1 // indirect - github.com/go-openapi/swag/mangling v0.26.1 // indirect - github.com/go-openapi/swag/netutils v0.26.1 // indirect - github.com/go-openapi/swag/stringutils v0.26.1 // indirect - github.com/go-openapi/swag/typeutils v0.26.1 // indirect - github.com/go-openapi/swag/yamlutils v0.26.1 // indirect + github.com/go-openapi/swag v0.27.0 // indirect + github.com/go-openapi/swag/cmdutils v0.27.0 // indirect + github.com/go-openapi/swag/conv v0.27.0 // indirect + github.com/go-openapi/swag/fileutils v0.27.0 // indirect + github.com/go-openapi/swag/jsonutils v0.27.0 // indirect + github.com/go-openapi/swag/loading v0.27.0 // indirect + github.com/go-openapi/swag/mangling v0.27.0 // indirect + github.com/go-openapi/swag/netutils v0.27.0 // indirect + github.com/go-openapi/swag/stringutils v0.27.0 // indirect + github.com/go-openapi/swag/typeutils v0.27.0 // indirect + github.com/go-openapi/swag/yamlutils v0.27.0 // indirect github.com/go-task/slim-sprig/v3 v3.0.0 // indirect github.com/golang-jwt/jwt/v4 v4.5.2 // indirect github.com/golang/glog v1.2.5 // indirect @@ -67,7 +66,7 @@ require ( github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/prometheus/client_model v0.6.2 // indirect github.com/prometheus/common v0.69.0 // indirect - github.com/prometheus/procfs v0.20.1 // indirect + github.com/prometheus/procfs v0.21.1 // indirect github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 // indirect github.com/spf13/pflag v1.0.10 // indirect github.com/x448/float16 v0.8.4 // indirect @@ -93,9 +92,9 @@ require ( gopkg.in/yaml.v3 v3.0.1 // indirect k8s.io/apiextensions-apiserver v0.36.2 // indirect k8s.io/component-base v0.36.2 // indirect - k8s.io/kube-openapi v0.0.0-20260618221249-bc653b64f974 // indirect + k8s.io/kube-openapi v0.0.0-20260624041617-8f3fa4921821 // indirect k8s.io/streaming v0.36.2 // indirect - k8s.io/utils v0.0.0-20260617174310-a95e086a2553 // indirect + k8s.io/utils v0.0.0-20260626114624-be93311217bd // indirect sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 // indirect sigs.k8s.io/randfill v1.0.0 // indirect sigs.k8s.io/structured-merge-diff/v6 v6.4.0 // indirect diff --git a/go.sum b/go.sum index 618cd47c..53fe6b4d 100644 --- a/go.sum +++ b/go.sum @@ -36,40 +36,38 @@ github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ= github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg= -github.com/go-openapi/jsonpointer v0.23.1 h1:1HBACs7XIwR2RcmItfdSFlALhGbe6S92p0ry4d1GWg4= -github.com/go-openapi/jsonpointer v0.23.1/go.mod h1:iWRmZTrGn7XwYhtPt/fvdSFj1OfNBngqRT2UG3BxSqY= +github.com/go-openapi/jsonpointer v0.24.0 h1:AA6mCjHYHmZ+1RU2Js089EaOK/iwXXNwQsTgnsTha2M= +github.com/go-openapi/jsonpointer v0.24.0/go.mod h1:Z3rw7dWu1p9IgitXCFamSlA5lmDiklEB6vkaxcNZW5Y= github.com/go-openapi/jsonreference v0.21.6 h1:NZ5nGfnaM1n4I43Xjm1e5/M2GjOwQwndQz22uhxwD+Y= github.com/go-openapi/jsonreference v0.21.6/go.mod h1:xzbgtQ3ZbWxvET3AxdzCJlJt6vkovbf+IfSPJjD0tUY= -github.com/go-openapi/swag v0.26.1 h1:l5sVEyVpwj+DDYeZyo7wQI/Ebn/mKYIyGB/pFwAfGoQ= -github.com/go-openapi/swag v0.26.1/go.mod h1:yNY38BbIVthxbkDtq1UHBCGasBqjakW3lCR6ANzdBEw= -github.com/go-openapi/swag/cmdutils v0.26.1 h1:f2iE1ijYaJ3nuu5PaEMx3zpEhzhZFgivCJObWEObLIQ= -github.com/go-openapi/swag/cmdutils v0.26.1/go.mod h1:Sm1MVFMkF6guJJ+pQqHnQA3N0j9qALV3NxzDSv6bETM= -github.com/go-openapi/swag/conv v0.26.1 h1:slr5FVkg9Wc3Y5zcwenD8Sd/PQ94b2I/QJI7N7KTBpg= -github.com/go-openapi/swag/conv v0.26.1/go.mod h1:mvQXgPptZk9GTrFgGwWvT4q+dN+zQej9JfmGwnipz1A= -github.com/go-openapi/swag/fileutils v0.26.1 h1:K1XCM2CGhfNsc6YDt6v7Q5+1e59rftYWdcu/isZhvFw= -github.com/go-openapi/swag/fileutils v0.26.1/go.mod h1:mYUgxQAKX4ShS3qvvySx+/9yrlUnDhjiD1CalaQl8lQ= -github.com/go-openapi/swag/jsonname v0.26.1 h1:VReupaV6WxlAsCn0e4DUfgV6bPmINnPpyJDLqSfNPcE= -github.com/go-openapi/swag/jsonname v0.26.1/go.mod h1:OvdW6BoWoj33pTfi7x9vFrgmT+fk7aw0BRwvCE0YOuc= -github.com/go-openapi/swag/jsonutils v0.26.1 h1:2hdBfFkHg+7Wrz2VsCbeyR6hzkRDs7AztnMR2u84yOY= -github.com/go-openapi/swag/jsonutils v0.26.1/go.mod h1:U+RMJH3wa+6BRiphuRtIyI8fW9HPFqFQ4sHk2oRx0UQ= -github.com/go-openapi/swag/jsonutils/fixtures_test v0.26.1 h1:1CD7NiLLb/TXl3tOnFYU4b+mNfb5rtgHkaA+q7RMYYQ= -github.com/go-openapi/swag/jsonutils/fixtures_test v0.26.1/go.mod h1:ZWafc8nMdYzTE3uYY6W86f0n46+IF0g4uUyRhJw/kXc= -github.com/go-openapi/swag/loading v0.26.1 h1:E9K4wqXeROlhjFQ13K9zMz6ojFGXIggGe+ad1odrK9w= -github.com/go-openapi/swag/loading v0.26.1/go.mod h1:3qvRIlWzWdq1HvmldwmuJ2ohpcAryN6xVt2OTKd0/7E= -github.com/go-openapi/swag/mangling v0.26.1 h1:gpYI4WuPKFJJVjV5cDLGlDVJhFIxYjQc7yN5eEb4CqM= -github.com/go-openapi/swag/mangling v0.26.1/go.mod h1:POETDH01hqAdASXfw7ISEd9bCOE6xBHOt8NHmGZRmYM= -github.com/go-openapi/swag/netutils v0.26.1 h1:BNctoc39WTAUMxyAs355fExOPzMZtPbZ0ZZ1Am2FR5M= -github.com/go-openapi/swag/netutils v0.26.1/go.mod h1:y02vByhZhQPAVwOX+0KipXFZ/hUbk6G/Enhf5rGaOkQ= -github.com/go-openapi/swag/stringutils v0.26.1 h1:f88uYyTso7TnHrKM/bUBsQ5e2wKf37cpgo6pvbzd9yU= -github.com/go-openapi/swag/stringutils v0.26.1/go.mod h1:Sc6d3bU8fgk5AyZR8/8jEQ+Is/Ald+TD/IIggPN8UJk= -github.com/go-openapi/swag/typeutils v0.26.1 h1:yg42FgMzRR6PVQ3M3qHz1s+Y6/P4HoJ3cBarXa3OVnU= -github.com/go-openapi/swag/typeutils v0.26.1/go.mod h1:VfnV+oUtSP2vCSCn2aJgnr8OevUYemyIzzS1VOzS10o= -github.com/go-openapi/swag/yamlutils v0.26.1 h1:0TSLK+lXs9vfIhAWzBeI/lOzEnIoot6WTCO1aAeWFTk= -github.com/go-openapi/swag/yamlutils v0.26.1/go.mod h1:7W5b7PRX9MxwL7TjeG7H8HkyBGRsIDRObhyMWFgBI2M= -github.com/go-openapi/testify/enable/yaml/v2 v2.5.1 h1:q9NtHwK4qHF7yZziBPvZyv7zWAIk8ok88Gh2mR6Jpc8= -github.com/go-openapi/testify/enable/yaml/v2 v2.5.1/go.mod h1:JW0MXIotCYps/XsgJnG3a8Q7rE5xAiBwoOD5OfaIQBk= -github.com/go-openapi/testify/v2 v2.5.1 h1:TMdhCaw8fUNraVSf3Omoob1dO/AzBfhtFAPW0an6sBo= -github.com/go-openapi/testify/v2 v2.5.1/go.mod h1:SgsVHtfooshd0tublTtJ50FPKhujf47YRqauXXOUxfw= +github.com/go-openapi/swag v0.27.0 h1:8ecSuZlh4NXc3GsmAOqECIYqDTApCWaMe3gO4gjJNEE= +github.com/go-openapi/swag v0.27.0/go.mod h1:Kkgz9Ht0+ul9/aVdFmc9xSyPzUwf/aFF5KiFPBXfSY0= +github.com/go-openapi/swag/cmdutils v0.27.0 h1:aIKiqhB29AaP+7xm8/CPg3uOpeHx2SUp6TvMpu/a31Y= +github.com/go-openapi/swag/cmdutils v0.27.0/go.mod h1:Sm1MVFMkF6guJJ+pQqHnQA3N0j9qALV3NxzDSv6bETM= +github.com/go-openapi/swag/conv v0.27.0 h1:EKOH4feXrvdo8DbSsXSAqRT8fz1epEnS5O2IfXUOzE8= +github.com/go-openapi/swag/conv v0.27.0/go.mod h1:pfiv0uKQTbaGApk8Zs/lZV3uSjmSpa2FO1y183YngN8= +github.com/go-openapi/swag/fileutils v0.27.0 h1:ib5jMUqGq5tY1EyO4inlrabsaeDAleFU+XD1FXQcgp8= +github.com/go-openapi/swag/fileutils v0.27.0/go.mod h1:VvJFZLTZS0AI854gEQz5tk7dBESdLjiNUMSZ/th2ry8= +github.com/go-openapi/swag/jsonutils v0.27.0 h1:VYtd9jEQYeU4j8q5vdn5KWotF4vKywhGdMBrALtAsfE= +github.com/go-openapi/swag/jsonutils v0.27.0/go.mod h1:U7pb8AGuwhok3RDicHeHwSG4L3PXSq6PAL98Aon632g= +github.com/go-openapi/swag/jsonutils/fixtures_test v0.27.0 h1:+d7C7Ur/SsGg/UZ9G0JEovnfRqtMNZCJQGKc2h/ojoE= +github.com/go-openapi/swag/jsonutils/fixtures_test v0.27.0/go.mod h1:mofwUWx70wvskwESqRJ//k/9kURmCgyJl5m5Ppoh5kY= +github.com/go-openapi/swag/loading v0.27.0 h1:s8DA9aPEdFH6OluHUYUn3DnIuoTdyWs9RwffXBUfyeI= +github.com/go-openapi/swag/loading v0.27.0/go.mod h1:VOz+Jg6UGGywcmRvYsI4fvtp+bd7NfioseGEPleYdA4= +github.com/go-openapi/swag/mangling v0.27.0 h1:rpPJuqQHa6z2pDiP3iIpXOyNXlSs9cQCxnJSAxzdfOc= +github.com/go-openapi/swag/mangling v0.27.0/go.mod h1:jtBE2+V+3pILxOR7Vgce+Cwp6A2PgZbvVqfNntbVs0w= +github.com/go-openapi/swag/netutils v0.27.0 h1:lEUG+hHvPvLggB3A8snFk0IRKNf9uC0YKc+7WYqvAF8= +github.com/go-openapi/swag/netutils v0.27.0/go.mod h1:J+WYyFMLtvtCGqa6jLv+YNUmIKI3ZRQRrvfNDMoQoEQ= +github.com/go-openapi/swag/stringutils v0.27.0 h1:Of7w/HljWsNZvuxsUAnw3n+hCOyI6HLJOxW2kQRAxio= +github.com/go-openapi/swag/stringutils v0.27.0/go.mod h1:lzRN95CxXmA03XcDWHLOb6nOMcxCqR5rGY0lOgsfRoM= +github.com/go-openapi/swag/typeutils v0.27.0 h1:aCf4MSGo8NLwZP8Q6t32DWLJSvl/WwNqgmEG+xJ6v2o= +github.com/go-openapi/swag/typeutils v0.27.0/go.mod h1:Srm0xFNRZ1Y+vCxJclo5qzx8aj+1pAKda/YfFPrG0dQ= +github.com/go-openapi/swag/yamlutils v0.27.0 h1:bQ6eAMil5X9tdcf7dMn4t15alzG6jddnrKPuKa/zxKM= +github.com/go-openapi/swag/yamlutils v0.27.0/go.mod h1:yRfIo7qqVkmJRQjX8exjA3AfcI8rH1KDNPsTparoCv4= +github.com/go-openapi/testify/enable/yaml/v2 v2.6.0 h1:gGHwAJ0R/5jU8BEGDbfRNR3hL68dAVi84WuOApp29B0= +github.com/go-openapi/testify/enable/yaml/v2 v2.6.0/go.mod h1:tY+St1SGq4NFl0QIqdTY4aEdbChAHxhyB77XQi9iJCo= +github.com/go-openapi/testify/v2 v2.6.0 h1:5PKH2HE7YJ/LuRPQGvSxBRlFXNQhSetBLlGAgUEu3ug= +github.com/go-openapi/testify/v2 v2.6.0/go.mod h1:SgsVHtfooshd0tublTtJ50FPKhujf47YRqauXXOUxfw= github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= github.com/goccy/go-yaml v1.18.0 h1:8W7wMFS12Pcas7KU+VVkaiCng+kG8QiFeFwzFb+rwuw= @@ -139,8 +137,8 @@ github.com/openshift-online/ocm-api-model/model v0.0.458 h1:slgdBbvdcrI9g7eILVSJ github.com/openshift-online/ocm-api-model/model v0.0.458/go.mod h1:PQIoq6P8Vlb7goOdRMLK8nJY+B7HH0RTqYAa4kyidTE= github.com/openshift-online/ocm-sdk-go v0.1.503 h1:QN0PUvucEGHLXwjiMEI7nuoa2H6N/SUiA4aRYh6sZ2M= github.com/openshift-online/ocm-sdk-go v0.1.503/go.mod h1:SM9x+/m+JAigXnGzb/dY+tMbbgx5f5Oq9Nj5Grg1LVk= -github.com/openshift/api v0.0.0-20260624175654-50c3975e874f h1:bvtfTEAQWbp7FJnmVinyJqEcaWVOdetZza6A2mo74TA= -github.com/openshift/api v0.0.0-20260624175654-50c3975e874f/go.mod h1:Jm45pE7O6/G0tYYhiLzNyZykTjmf9BfhsKYuGfLLwTE= +github.com/openshift/api v0.0.0-20260702202555-ef71f942ef6c h1:X1B6zMjD7kmKcuv9Cxs4Zhq/ruJLt7BsywSWKOA9Jn4= +github.com/openshift/api v0.0.0-20260702202555-ef71f942ef6c/go.mod h1:7WJ3IPaK6nmWT8bDcaNooHqd0H5WepjVqV/10VlkMEM= github.com/openshift/osde2e-common v0.0.0-20260618165637-751e0d23bb9d h1:L0AAQ1d3eDeMgNDEiFlZrjdaskZ2pVlZC34rM91iz9Y= github.com/openshift/osde2e-common v0.0.0-20260618165637-751e0d23bb9d/go.mod h1:swgg1YIOtSLyz4YYH+IWPNdCC1WEucYrprScwtNFPTI= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= @@ -154,8 +152,8 @@ github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNw github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= github.com/prometheus/common v0.69.0 h1:OA85nJQS/T/MaYh/Q2CcgDKSGWqNIgrBDvDH85CuiNk= github.com/prometheus/common v0.69.0/go.mod h1:ZzL3f6u94qUxh9p+tJTrF+FvBS1XXbbRAZCQkytAL0Y= -github.com/prometheus/procfs v0.20.1 h1:XwbrGOIplXW/AU3YhIhLODXMJYyC1isLFfYCsTEycfc= -github.com/prometheus/procfs v0.20.1/go.mod h1:o9EMBZGRyvDrSPH1RqdxhojkuXstoe4UlK79eF5TGGo= +github.com/prometheus/procfs v0.21.1 h1:GljZCt+zSTS+NZq88cyQ1LjZ+RCHp3uVuabBWA5+OJI= +github.com/prometheus/procfs v0.21.1/go.mod h1:aB55Cww9pdSJVHk0hUf0inxWyyjPogFIjmHKYgMKmtY= github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 h1:JIAuq3EEf9cgbU6AtGPK4CTG3Zf6CKMNqf0MHTggAUA= @@ -260,12 +258,12 @@ k8s.io/component-base v0.36.2 h1:Z0VH80O7Ng0HDZnZj3WRR3urEGa0kTwmO8CwEwjVK1w= k8s.io/component-base v0.36.2/go.mod h1:mGfFOA7Gwpdm1VW2cwSQYbiDIlz8GD2WGwH88QSeCyA= k8s.io/klog/v2 v2.140.0 h1:Tf+J3AH7xnUzZyVVXhTgGhEKnFqye14aadWv7bzXdzc= k8s.io/klog/v2 v2.140.0/go.mod h1:o+/RWfJ6PwpnFn7OyAG3QnO47BFsymfEfrz6XyYSSp0= -k8s.io/kube-openapi v0.0.0-20260618221249-bc653b64f974 h1:JVogoTvOj6gutlx8bUwGh0e8o8L4X8nDbTLyONmoVvk= -k8s.io/kube-openapi v0.0.0-20260618221249-bc653b64f974/go.mod h1:V/QaCUYDa+0QpcHhVVc5l99Uz56wEMEXBSj9oCDkNDY= +k8s.io/kube-openapi v0.0.0-20260624041617-8f3fa4921821 h1:m2wZhD5+vJZyCVkTvUHIfaiXc/mdt3Pxyx3vUnGsKzU= +k8s.io/kube-openapi v0.0.0-20260624041617-8f3fa4921821/go.mod h1:V/QaCUYDa+0QpcHhVVc5l99Uz56wEMEXBSj9oCDkNDY= k8s.io/streaming v0.36.2 h1:NSKthPPg9UFSKsRauVJUVGH2Dvn8fhKmY4qrMkw/p98= k8s.io/streaming v0.36.2/go.mod h1:z6fV3D+NVkoeqRMtWwlUZK6U17SY/LqNzOxWL6GyR/s= -k8s.io/utils v0.0.0-20260617174310-a95e086a2553 h1:hmGqDecjc8d7HVzWzRFl0QD9bYuYKbBEG7t8xwnVxfI= -k8s.io/utils v0.0.0-20260617174310-a95e086a2553/go.mod h1:xDxuJ0whA3d0I4mf/C4ppKHxXynQ+fxnkmQH0vTHnuk= +k8s.io/utils v0.0.0-20260626114624-be93311217bd h1:Ea7fgQ5we8Y9T0OX5o0dAHzQOBRI07D/dEYRaB9ZZEs= +k8s.io/utils v0.0.0-20260626114624-be93311217bd/go.mod h1:xDxuJ0whA3d0I4mf/C4ppKHxXynQ+fxnkmQH0vTHnuk= sigs.k8s.io/controller-runtime v0.24.1 h1:miPEwrmirImAvgME1L9qebGHrOnGJoVmVdtOU9fRfo4= sigs.k8s.io/controller-runtime v0.24.1/go.mod h1:vFkfY5fGt5xAC/sKb8IBFKgWPNKG9OUG29dR8Y2wImw= sigs.k8s.io/e2e-framework v0.7.0 h1:AHkySTC6MvnnMbVSxaO4z1m2MhQKNFP+2Ihs5pRNLlM=