Skip to content

CORS-3652: RHCOS Stream Marketplace Images#9329

Merged
openshift-merge-bot[bot] merged 8 commits intoopenshift:mainfrom
patrickdillon:az-mkt-imgs
Aug 22, 2025
Merged

CORS-3652: RHCOS Stream Marketplace Images#9329
openshift-merge-bot[bot] merged 8 commits intoopenshift:mainfrom
patrickdillon:az-mkt-imgs

Conversation

@patrickdillon
Copy link
Contributor

@patrickdillon patrickdillon commented Dec 19, 2024

This is an implementation of openshift/enhancements#1655

  • Adds a standalone go file ./hack/rhcos/populate-marketplace-imagestream.go which generates data/data/coreos/marketplace-rhcos.json
  • Adds packages to populate the stream with free Azure marketplace images published by ARO
  • Vendors local fork of coreos/stream-metadata-go with updated struct definitions for the marketplace (PR forthcoming)
  • Updates existing installer RHCOS libraries to merge marketplace-rhcos.json with rhcos.json when:
    • openshift-install coreos print-stream-json
    • running ./hack/build-coreos-manifest.go (as part of the Dockerfile build) to generate the RHCOS stream configmap
    • selecting boot images for IPI installs with openshift-install create cluster
  • Includes a PoC commit to demonstrate a CI-based IPI Azure install using the stream. I expect it may be better to break this work into a separate PR, but including the initial work here serves as a good test/verification.

openshift/enhancements#1655 is still a WIP and needs to be updated to reflect this work, but enough consensus has been reached that the work itself can help guide the enhancement.

How it works:

Users can run this standalone command (using authentication libs of the openshift-installer) to generate/update the marketplace stream:

STREAM_RELEASE_OVERRIDE=4.19 go run -mod=vendor ./hack/rhcos/populate-marketplace-imagestream.go

By default, the command will look for (Azure unpaid) images in the current branch (discovered from the local rhcos.json). I added an override to force searching for a specific release. In this case, the override value is hacky with zero-padding because I could not determine the RHCOS build which was used to publish the ARO images (they truncate the timestamp).

The results of this command produce the marketplace-rhcos.json file, checked in here.

When using the print-stream-json command, the marketplace-rhcos.json results are merged with rhcos.json:

$ ./openshift-install coreos print-stream-json | jq '.architectures.x86_64."rhel-coreos-extensions"'
{
  "azure-disk": {
    "release": "9.6.20250701-0",
    "url": "https://rhcos.blob.core.windows.net/imagebucket/rhcos-9.6.20250701-0-azure.x86_64.vhd"
  },
  "marketplace": {
    "azure": {
      "no-purchase-plan": {
        "hyperVGen1": {
          "publisher": "azureopenshift",
          "offer": "aro4",
          "sku": "aro_419",
          "version": "419.6.20250523"
        },
        "hyperVGen2": {
          "publisher": "azureopenshift",
          "offer": "aro4",
          "sku": "419-v2",
          "version": "419.6.20250523"
        }
      },
      "ocp": {
        "hyperVGen1": {
          "publisher": "redhat",
          "offer": "rh-ocp-worker",
          "sku": "rh-ocp-worker-gen1",
          "version": "4.18.2025031114"
        },
        "hyperVGen2": {
          "publisher": "redhat",
          "offer": "rh-ocp-worker",
          "sku": "rh-ocp-worker",
          "version": "4.18.2025031114"
        }
      },
      "opp": {
        "hyperVGen1": {
          "publisher": "redhat",
          "offer": "rh-opp-worker",
          "sku": "rh-opp-worker-gen1",
          "version": "4.18.2025031114"
        },
        "hyperVGen2": {
          "publisher": "redhat",
          "offer": "rh-opp-worker",
          "sku": "rh-opp-worker",
          "version": "4.18.2025031114"
        }
      },
      "oke": {
        "hyperVGen1": {
          "publisher": "redhat",
          "offer": "rh-oke-worker",
          "sku": "rh-oke-worker-gen1",
          "version": "4.18.2025031114"
        },
        "hyperVGen2": {
          "publisher": "redhat",
          "offer": "rh-oke-worker",
          "sku": "rh-oke-worker",
          "version": "4.18.2025031114"
        }
      },
      "ocp-emea": {
        "hyperVGen1": {
          "publisher": "redhat-limited",
          "offer": "rh-ocp-worker",
          "sku": "rh-ocp-worker-gen1",
          "version": "4.18.2025031114"
        },
        "hyperVGen2": {
          "publisher": "redhat-limited",
          "offer": "rh-ocp-worker",
          "sku": "rh-ocp-worker",
          "version": "4.18.2025031114"
        }
      },
      "opp-emea": {
        "hyperVGen1": {
          "publisher": "redhat-limited",
          "offer": "rh-opp-worker",
          "sku": "rh-opp-worker-gen1",
          "version": "4.18.2025031114"
        },
        "hyperVGen2": {
          "publisher": "redhat-limited",
          "offer": "rh-opp-worker",
          "sku": "rh-opp-worker",
          "version": "4.18.2025031114"
        }
      },
      "oke-emea": {
        "hyperVGen1": {
          "publisher": "redhat-limited",
          "offer": "rh-oke-worker",
          "sku": "rh-oke-worker-gen1",
          "version": "4.18.2025031114"
        },
        "hyperVGen2": {
          "publisher": "redhat-limited",
          "offer": "rh-oke-worker",
          "sku": "rh-oke-worker",
          "version": "4.18.2025031114"
        }
      }
    }
  }
}

Similarly, the configmap generated from ./hack/build-coreos-manifest.go contains the merged json.

Finally, the poc ipi azure install demonstrates the installation time gains we achieve when not needing to upload an image as part of the install process.

@openshift-ci openshift-ci bot requested review from jlebon and mtulio December 19, 2024 02:14
@patrickdillon
Copy link
Contributor Author

/cc @bryan-cox @bennerv
fyi @sdodson @jlebon @travier
I will update the enhancement ASAP.

@openshift-ci openshift-ci bot requested review from bennerv and bryan-cox December 19, 2024 02:15
@openshift-merge-robot openshift-merge-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Mar 13, 2025
@openshift-merge-robot openshift-merge-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jul 23, 2025
@patrickdillon patrickdillon force-pushed the az-mkt-imgs branch 2 times, most recently from 5db7f58 to 8727a60 Compare August 1, 2025 19:50
},
"ocp-emea": {
"hyperVGen1": {
"publisher": "redhat-limited",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Generally looks good from MCO POV; just a quick question here:

Is the publisher redhat-limited the only difference between the regions for paid marketplace images? Is there something else in the providerSpec the MCO could use to determine regions, or would this be the most deterministic way to do this?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Exactly this. AFAIK the only difference is the publisher. Does that work for MCO?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ack, we can make that work; as long as this hasn't changed historically - we might be updating fairly old machinesets! 😅

Adds a standalone go program that generates
data/data/coreos/marketplace-rhcos.json

This file is combined with rhcos.json to create the coreos stream,
but the files are updated at different cadences by different teams.
Updates the generation of the coreos stream manifest, which runs
during container building, to merge the contents of the
marketplace-rhcos.json file with rhcos.json when creating the coreos
stream configmap.
@patrickdillon
Copy link
Contributor Author

oops forgot to fix linting, still need to do that

@patrickdillon patrickdillon force-pushed the az-mkt-imgs branch 2 times, most recently from 1e5eb81 to 35f81b5 Compare August 19, 2025 01:39
@patrickdillon
Copy link
Contributor Author

I have tested this on version 4.16+ and this should be ready for review

@patrickdillon
Copy link
Contributor Author

/test ?

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Aug 19, 2025

@patrickdillon: The following commands are available to trigger required jobs:

/test artifacts-images
/test e2e-agent-compact-ipv4
/test e2e-aws-ovn
/test e2e-aws-ovn-edge-zones-manifest-validation
/test e2e-aws-ovn-upi
/test e2e-azure-nat-gateway-single-zone
/test e2e-azure-ovn
/test e2e-gcp-ovn
/test e2e-gcp-ovn-upi
/test e2e-metal-ipi-ovn-ipv6
/test e2e-openstack-ovn
/test e2e-vsphere-ovn
/test e2e-vsphere-ovn-upi
/test gofmt
/test golint
/test govet
/test images
/test integration-tests
/test integration-tests-nodejoiner
/test okd-scos-images
/test openstack-manifests
/test unit
/test verify-codegen
/test verify-deps
/test verify-vendor

The following commands are available to trigger optional jobs:

/test aws-private
/test azure-ovn-marketplace-images
/test azure-private
/test e2e-agent-4control-ipv4
/test e2e-agent-5control-ipv4
/test e2e-agent-compact-ipv4-appliance-diskimage
/test e2e-agent-compact-ipv4-none-platform
/test e2e-agent-compact-ipv6-minimaliso
/test e2e-agent-ha-dualstack
/test e2e-agent-sno-ipv4-pxe
/test e2e-agent-sno-ipv6
/test e2e-aws-byo-subnet-role-security-groups
/test e2e-aws-custom-dns
/test e2e-aws-default-config
/test e2e-aws-overlay-mtu-ovn-1200
/test e2e-aws-ovn-custom-iam-profile
/test e2e-aws-ovn-edge-zones
/test e2e-aws-ovn-fips
/test e2e-aws-ovn-heterogeneous
/test e2e-aws-ovn-imdsv2
/test e2e-aws-ovn-proxy
/test e2e-aws-ovn-public-ipv4-pool
/test e2e-aws-ovn-public-ipv4-pool-disabled
/test e2e-aws-ovn-public-subnets
/test e2e-aws-ovn-shared-vpc-custom-security-groups
/test e2e-aws-ovn-shared-vpc-edge-zones
/test e2e-aws-ovn-single-node
/test e2e-aws-ovn-techpreview
/test e2e-aws-ovn-upgrade
/test e2e-aws-upi-proxy
/test e2e-azure-default-config
/test e2e-azure-ovn-multidisk-techpreview
/test e2e-azure-ovn-resourcegroup
/test e2e-azure-ovn-shared-vpc
/test e2e-azure-ovn-techpreview
/test e2e-azure-ovn-upi
/test e2e-azurestack
/test e2e-azurestack-upi
/test e2e-crc
/test e2e-external-aws
/test e2e-external-aws-ccm
/test e2e-gcp-custom-dns-techpreview
/test e2e-gcp-custom-endpoints
/test e2e-gcp-default-config
/test e2e-gcp-ovn-byo-vpc
/test e2e-gcp-ovn-heterogeneous
/test e2e-gcp-ovn-techpreview
/test e2e-gcp-ovn-xpn
/test e2e-gcp-secureboot
/test e2e-gcp-upgrade
/test e2e-gcp-upi-xpn
/test e2e-gcp-xpn-dedicated-dns-project
/test e2e-ibmcloud-ovn
/test e2e-metal-assisted
/test e2e-metal-ipi-ovn
/test e2e-metal-ipi-ovn-dualstack
/test e2e-metal-ipi-ovn-swapped-hosts
/test e2e-metal-ipi-ovn-virtualmedia
/test e2e-metal-ovn-two-node-arbiter
/test e2e-metal-ovn-two-node-fencing
/test e2e-metal-single-node-live-iso
/test e2e-nutanix-ovn
/test e2e-openstack-ccpmso
/test e2e-openstack-ccpmso-zone
/test e2e-openstack-dualstack
/test e2e-openstack-dualstack-upi
/test e2e-openstack-externallb
/test e2e-openstack-nfv-intel
/test e2e-openstack-proxy
/test e2e-openstack-singlestackv6
/test e2e-powervs-capi-ovn
/test e2e-vsphere-externallb-ovn
/test e2e-vsphere-host-groups-ovn-techpreview
/test e2e-vsphere-multi-vcenter-ovn
/test e2e-vsphere-ovn-disk-setup-techpreview
/test e2e-vsphere-ovn-hybrid-env
/test e2e-vsphere-ovn-multi-disk
/test e2e-vsphere-ovn-multi-network
/test e2e-vsphere-ovn-techpreview
/test e2e-vsphere-ovn-upi-zones
/test e2e-vsphere-ovn-zones
/test e2e-vsphere-ovn-zones-techpreview
/test e2e-vsphere-static-ovn
/test gcp-private
/test okd-scos-e2e-aws-ovn

Use /test all to run the following jobs that were automatically triggered:

pull-ci-openshift-installer-main-artifacts-images
pull-ci-openshift-installer-main-azure-ovn-marketplace-images
pull-ci-openshift-installer-main-azure-private
pull-ci-openshift-installer-main-e2e-aws-ovn
pull-ci-openshift-installer-main-e2e-azure-default-config
pull-ci-openshift-installer-main-e2e-azure-ovn
pull-ci-openshift-installer-main-e2e-azure-ovn-resourcegroup
pull-ci-openshift-installer-main-e2e-azure-ovn-shared-vpc
pull-ci-openshift-installer-main-e2e-azurestack
pull-ci-openshift-installer-main-e2e-vsphere-externallb-ovn
pull-ci-openshift-installer-main-e2e-vsphere-host-groups-ovn-techpreview
pull-ci-openshift-installer-main-e2e-vsphere-ovn-multi-network
pull-ci-openshift-installer-main-e2e-vsphere-static-ovn
pull-ci-openshift-installer-main-gofmt
pull-ci-openshift-installer-main-golint
pull-ci-openshift-installer-main-govet
pull-ci-openshift-installer-main-images
pull-ci-openshift-installer-main-okd-scos-e2e-aws-ovn
pull-ci-openshift-installer-main-okd-scos-images
pull-ci-openshift-installer-main-unit
pull-ci-openshift-installer-main-verify-codegen
pull-ci-openshift-installer-main-verify-deps
pull-ci-openshift-installer-main-verify-vendor
Details

In response to this:

/test ?

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@patrickdillon
Copy link
Contributor Author

/test e2e-gcp-ovn e2e-nutanix-ovn e2e-openstack-ovn e2e-metal-ipi-ovn

Copy link
Contributor

@barbacbd barbacbd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/lgtm

go mod tidy && go mod vendor
@openshift-ci openshift-ci bot removed the lgtm Indicates that a PR is ready to be merged. label Aug 21, 2025
return "coreos/fcos.json"
}

func getMarketplaceStreamFileName() string {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this name not causing issues? There are 3 defined in the same package. They may not be exported but they are all in the same package.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oh maybe this is ok because of the build tags at the top of the files

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

correct, the problem I fixed was that this was only defined for fcos and also needed to be defined for scos

Copy link
Contributor

@barbacbd barbacbd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/lgtm

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Aug 21, 2025
@patrickdillon
Copy link
Contributor Author

wtf build failed due to virtctl build failure

/retest-required

Copy link
Member

@tthvo tthvo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM (go-code wise) 😅 I have some small questions.

Comment on lines +67 to +69
// TODO(padillon): dumb question time, git is still complaining \ No newline at end of file
// what am I doing wrong?
contents = append(contents, []byte("\n")...)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is the TODO resolved, maybe?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes! I thought i removed that. 🤦

Comment on lines +276 to +288
func checkIfNewer(candidate, release string) bool {
img, err := strconv.Atoi(strings.Split(semver.MajorMinor(candidate), ".")[1])
if err != nil {
logrus.Infof("Error converting minor version to int with version %s", candidate)
return true
}
rel, err := strconv.Atoi(strings.Split(release, ".")[1])
if err != nil {
logrus.Infof("Error converting minor version to int with version %s", release)
return true
}
return img > rel
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we use semver.Compare here too without having to split out the minor version? That should be able to compare 4.Y0 and 4.Y1?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💭

return semver.Compare(candidate, release) > 0

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the release image override i have it just required x.y, e.g. 4.19. When you convert that to a semver it becomes 4.19.0 so you end up excluding all 4.19 images, which was not the intent…

however i think this would work if we changed the semantics so that when users specify the version override they are specifying the minimum version they want to exclude. For example if you are populating 4.18, you set the env var to 4.19–not 4.18. Does that make sense? WDYT?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah opps! Now, I understand the intention of the function (i.e. the name caught be off guard), thanks! The current way is good to me :D

Maybe, lets name it checkIfNewerYStream/checkIfNewerMinorVersion or similar to note that it only cares about minor version segment?

@tthvo
Copy link
Member

tthvo commented Aug 21, 2025

/retitle CORS-3652: RHCOS Stream Marketplace Images

There is an extra space in the title... I think the questions i have are pretty much cosmetics so no concerns at all :D

@openshift-ci openshift-ci bot changed the title CORS-3652 : RHCOS Stream Marketplace Images CORS-3652: RHCOS Stream Marketplace Images Aug 21, 2025
@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Aug 21, 2025
@openshift-ci-robot
Copy link
Contributor

openshift-ci-robot commented Aug 21, 2025

@patrickdillon: This pull request references CORS-3652 which is a valid jira issue.

Details

In response to this:

This is an implementation of openshift/enhancements#1655

  • Adds a standalone go file ./hack/rhcos/populate-marketplace-imagestream.go which generates data/data/coreos/marketplace-rhcos.json
  • Adds packages to populate the stream with free Azure marketplace images published by ARO
  • Vendors local fork of coreos/stream-metadata-go with updated struct definitions for the marketplace (PR forthcoming)
  • Updates existing installer RHCOS libraries to merge marketplace-rhcos.json with rhcos.json when:
  • openshift-install coreos print-stream-json
  • running ./hack/build-coreos-manifest.go (as part of the Dockerfile build) to generate the RHCOS stream configmap
  • selecting boot images for IPI installs with openshift-install create cluster
  • Includes a PoC commit to demonstrate a CI-based IPI Azure install using the stream. I expect it may be better to break this work into a separate PR, but including the initial work here serves as a good test/verification.

openshift/enhancements#1655 is still a WIP and needs to be updated to reflect this work, but enough consensus has been reached that the work itself can help guide the enhancement.

How it works:

Users can run this standalone command (using authentication libs of the openshift-installer) to generate/update the marketplace stream:

STREAM_RELEASE_OVERRIDE=4.19 go run -mod=vendor ./hack/rhcos/populate-marketplace-imagestream.go

By default, the command will look for (Azure unpaid) images in the current branch (discovered from the local rhcos.json). I added an override to force searching for a specific release. In this case, the override value is hacky with zero-padding because I could not determine the RHCOS build which was used to publish the ARO images (they truncate the timestamp).

The results of this command produce the marketplace-rhcos.json file, checked in here.

When using the print-stream-json command, the marketplace-rhcos.json results are merged with rhcos.json:

$ ./openshift-install coreos print-stream-json | jq '.architectures.x86_64."rhel-coreos-extensions"'
{
 "azure-disk": {
   "release": "9.6.20250701-0",
   "url": "https://rhcos.blob.core.windows.net/imagebucket/rhcos-9.6.20250701-0-azure.x86_64.vhd"
 },
 "marketplace": {
   "azure": {
     "no-purchase-plan": {
       "hyperVGen1": {
         "publisher": "azureopenshift",
         "offer": "aro4",
         "sku": "aro_419",
         "version": "419.6.20250523"
       },
       "hyperVGen2": {
         "publisher": "azureopenshift",
         "offer": "aro4",
         "sku": "419-v2",
         "version": "419.6.20250523"
       }
     },
     "ocp": {
       "hyperVGen1": {
         "publisher": "redhat",
         "offer": "rh-ocp-worker",
         "sku": "rh-ocp-worker-gen1",
         "version": "4.18.2025031114"
       },
       "hyperVGen2": {
         "publisher": "redhat",
         "offer": "rh-ocp-worker",
         "sku": "rh-ocp-worker",
         "version": "4.18.2025031114"
       }
     },
     "opp": {
       "hyperVGen1": {
         "publisher": "redhat",
         "offer": "rh-opp-worker",
         "sku": "rh-opp-worker-gen1",
         "version": "4.18.2025031114"
       },
       "hyperVGen2": {
         "publisher": "redhat",
         "offer": "rh-opp-worker",
         "sku": "rh-opp-worker",
         "version": "4.18.2025031114"
       }
     },
     "oke": {
       "hyperVGen1": {
         "publisher": "redhat",
         "offer": "rh-oke-worker",
         "sku": "rh-oke-worker-gen1",
         "version": "4.18.2025031114"
       },
       "hyperVGen2": {
         "publisher": "redhat",
         "offer": "rh-oke-worker",
         "sku": "rh-oke-worker",
         "version": "4.18.2025031114"
       }
     },
     "ocp-emea": {
       "hyperVGen1": {
         "publisher": "redhat-limited",
         "offer": "rh-ocp-worker",
         "sku": "rh-ocp-worker-gen1",
         "version": "4.18.2025031114"
       },
       "hyperVGen2": {
         "publisher": "redhat-limited",
         "offer": "rh-ocp-worker",
         "sku": "rh-ocp-worker",
         "version": "4.18.2025031114"
       }
     },
     "opp-emea": {
       "hyperVGen1": {
         "publisher": "redhat-limited",
         "offer": "rh-opp-worker",
         "sku": "rh-opp-worker-gen1",
         "version": "4.18.2025031114"
       },
       "hyperVGen2": {
         "publisher": "redhat-limited",
         "offer": "rh-opp-worker",
         "sku": "rh-opp-worker",
         "version": "4.18.2025031114"
       }
     },
     "oke-emea": {
       "hyperVGen1": {
         "publisher": "redhat-limited",
         "offer": "rh-oke-worker",
         "sku": "rh-oke-worker-gen1",
         "version": "4.18.2025031114"
       },
       "hyperVGen2": {
         "publisher": "redhat-limited",
         "offer": "rh-oke-worker",
         "sku": "rh-oke-worker",
         "version": "4.18.2025031114"
       }
     }
   }
 }
}

Similarly, the configmap generated from ./hack/build-coreos-manifest.go contains the merged json.

Finally, the poc ipi azure install demonstrates the installation time gains we achieve when not needing to upload an image as part of the install process.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@tthvo
Copy link
Member

tthvo commented Aug 21, 2025

/lgtm
/retest

@patrickdillon
Copy link
Contributor Author

/approve

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Aug 21, 2025

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: patrickdillon

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci openshift-ci bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Aug 21, 2025
@openshift-ci-robot
Copy link
Contributor

/retest-required

Remaining retests: 0 against base HEAD 49780fa and 2 for PR HEAD 0fb323e in total

@openshift-ci-robot
Copy link
Contributor

/retest-required

Remaining retests: 0 against base HEAD 66d1f16 and 1 for PR HEAD 0fb323e in total

@openshift-ci-robot
Copy link
Contributor

/retest-required

Remaining retests: 0 against base HEAD 6bdcd87 and 0 for PR HEAD 0fb323e in total

@patrickdillon
Copy link
Contributor Author

/override e2e-azure-ovn

these are just random e2e failures at this point

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Aug 22, 2025

@patrickdillon: /override requires failed status contexts, check run or a prowjob name to operate on.
The following unknown contexts/checkruns were given:

  • e2e-azure-ovn

Only the following failed contexts/checkruns were expected:

  • ci/prow/artifacts-images
  • ci/prow/azure-ovn-marketplace-images
  • ci/prow/azure-private
  • ci/prow/e2e-aws-ovn
  • ci/prow/e2e-azure-default-config
  • ci/prow/e2e-azure-ovn
  • ci/prow/e2e-azure-ovn-resourcegroup
  • ci/prow/e2e-azure-ovn-shared-vpc
  • ci/prow/e2e-azurestack
  • ci/prow/e2e-vsphere-externallb-ovn
  • ci/prow/e2e-vsphere-host-groups-ovn-techpreview
  • ci/prow/e2e-vsphere-ovn-multi-network
  • ci/prow/e2e-vsphere-static-ovn
  • ci/prow/gofmt
  • ci/prow/golint
  • ci/prow/govet
  • ci/prow/images
  • ci/prow/okd-scos-e2e-aws-ovn
  • ci/prow/okd-scos-images
  • ci/prow/unit
  • ci/prow/verify-codegen
  • ci/prow/verify-deps
  • ci/prow/verify-vendor
  • pull-ci-openshift-installer-fcos-gofmt
  • pull-ci-openshift-installer-fcos-golint
  • pull-ci-openshift-installer-fcos-govet
  • pull-ci-openshift-installer-fcos-images
  • pull-ci-openshift-installer-fcos-unit
  • pull-ci-openshift-installer-fcos-verify-codegen
  • pull-ci-openshift-installer-fcos-verify-vendor
  • pull-ci-openshift-installer-main-artifacts-images
  • pull-ci-openshift-installer-main-azure-ovn-marketplace-images
  • pull-ci-openshift-installer-main-azure-private
  • pull-ci-openshift-installer-main-e2e-aws-ovn
  • pull-ci-openshift-installer-main-e2e-azure-default-config
  • pull-ci-openshift-installer-main-e2e-azure-ovn
  • pull-ci-openshift-installer-main-e2e-azure-ovn-resourcegroup
  • pull-ci-openshift-installer-main-e2e-azure-ovn-shared-vpc
  • pull-ci-openshift-installer-main-e2e-azurestack
  • pull-ci-openshift-installer-main-e2e-vsphere-externallb-ovn
  • pull-ci-openshift-installer-main-e2e-vsphere-host-groups-ovn-techpreview
  • pull-ci-openshift-installer-main-e2e-vsphere-ovn-multi-network
  • pull-ci-openshift-installer-main-e2e-vsphere-static-ovn
  • pull-ci-openshift-installer-main-okd-scos-e2e-aws-ovn
  • pull-ci-openshift-installer-main-okd-scos-images
  • pull-ci-openshift-installer-main-verify-deps
  • tide

If you are trying to override a checkrun that has a space in it, you must put a double quote on the context.

Details

In response to this:

/override e2e-azure-ovn

these are just random e2e failures at this point

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@patrickdillon
Copy link
Contributor Author

/override ci/prow/e2e-azure-ovn

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Aug 22, 2025

@patrickdillon: Overrode contexts on behalf of patrickdillon: ci/prow/e2e-azure-ovn

Details

In response to this:

/override ci/prow/e2e-azure-ovn

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@openshift-merge-bot openshift-merge-bot bot merged commit d0aabcc into openshift:main Aug 22, 2025
22 of 24 checks passed
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Aug 22, 2025

@patrickdillon: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/terraform-images 6944b1b link true /test terraform-images
ci/prow/terraform-okd-scos-images 6944b1b link true /test terraform-okd-scos-images
ci/prow/artifacts-okd-scos-images 6944b1b link true /test artifacts-okd-scos-images
ci/prow/e2e-vsphere-host-groups-ovn-custom-no-upgrade 5db7f58 link false /test e2e-vsphere-host-groups-ovn-custom-no-upgrade
ci/prow/e2e-vsphere-ovn-multi-network-techpreview 8727a60 link false /test e2e-vsphere-ovn-multi-network-techpreview
ci/prow/e2e-gcp-ovn 35f81b5 link true /test e2e-gcp-ovn
ci/prow/e2e-azure-ovn-resourcegroup 0fb323e link false /test e2e-azure-ovn-resourcegroup
ci/prow/e2e-azurestack 0fb323e link false /test e2e-azurestack

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

@openshift-bot
Copy link
Contributor

[ART PR BUILD NOTIFIER]

Distgit: ose-baremetal-installer
This PR has been included in build ose-baremetal-installer-container-v4.21.0-202508230015.p0.gd0aabcc.assembly.stream.el9.
All builds following this will include this PR.

@openshift-bot
Copy link
Contributor

[ART PR BUILD NOTIFIER]

Distgit: ose-installer
This PR has been included in build ose-installer-container-v4.21.0-202508230015.p0.gd0aabcc.assembly.stream.el9.
All builds following this will include this PR.

@openshift-bot
Copy link
Contributor

[ART PR BUILD NOTIFIER]

Distgit: ose-installer-artifacts
This PR has been included in build ose-installer-artifacts-container-v4.21.0-202508230015.p0.gd0aabcc.assembly.stream.el9.
All builds following this will include this PR.

"publisher": "azureopenshift",
"offer": "aro4",
"sku": "aro_419",
"version": "419.6.20250523"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, what's up with the version string here? This should just be the same 9.6.xxx version string inherited from the non-marketplace image.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note the versioning of RHCOS changed in 4.19 and up to reflect that fact that it's the same bootimages used across multiple OCP releases. See also https://github.com/openshift/enhancements/blob/master/enhancements/rhcos/split-rhcos-into-layers.md#etcos-release.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, what's up with the version string here? This should just be the same 9.6.xxx version string inherited from the non-marketplace image.

That is the version ARO chose when publishing the image:

% az vm image list --publisher azureopenshift --offer aro4  --sku aro_419 --all -o table

Architecture    Offer    Publisher       Sku      Urn                                         Version
--------------  -------  --------------  -------  ------------------------------------------  --------------
x64             aro4     azureopenshift  aro_419  azureopenshift:aro4:aro_419:419.6.20250523  419.6.20250523

So we should work with them (and Software Production, who publishes the paid images) to cohere the way images are published.

@bennerv any suggestions on how we could get this on ARO's radar? As Jonathan said, the version should just be the release from rhcos string, truncated as necessary.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not a huge issue for the MCO in the short term, but could be a confusing to users when we perform boot image updates(machineset says RHCOS-like values, but node was born on RHEL-like values). Matching version formats would definitely come in handy for when the MCO implements skew enforcement in the not so distant future, too. Just my 2 cents 😄

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll talk to the other ARO TLs. I don't see a problem matching it 4.20+. It changed in 4.18 and i'm guessing we didn't notice it or change it in 4.19.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note that we can't change a version once it's out, only publish new ones. Also we won't be able to deprecate images until MCO implements skew enforcement and we can confirm no one is running older marketplace images.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note that we can't change a version once it's out

+1. Just wanted to standardize/align for future images.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. lgtm Indicates that a PR is ready to be merged.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants