#333 Support for making a decision to promote a container image
Closed: Fixed by gnaponie. Opened by rayson.

Hi,

We'd like to leverage Greenwave for gating a container image between environments (dev,stage,prod,etc). A potential workflow for promoting a temporary image built from the master branch to dev is like:

  • A pull-request is merged into the master branch in Pagure/Gerrit/GitHub/Gitlab.
  • The CI/CD pipelines build images from the merged version of the code. Those images are identified by a unique tag (: or something else) that are used to provision an instance of the service with that version.
  • Project-defined integration tests are run. Results are reported to ResultsDB.
  • Greenwave sends a message when the criteria for promotion from dev have been met.
  • If the decision is YES, the CI/CD pipelines update the dev tag with the new images.

Similar procedures should take place for promoting images from dev to stage or stage to prod. Note a project may have more environments than dev/stage/prod.

Note:
We should be able to make clearly distinguish between those CI/CD pipelines created container images with those from OSBS. A new subject_type might be needed.

Any ideas or suggestions?

CC @gnaponie @lholecek @ralph @lucarval


It looks good to me.
But please keep in mind that Greenwave sends a message about a decision change only if there is actually a change!
So if you have:
- all requirements are satisfied --> new PASSED result --> all requirements are still satisfied --> no message will be emitted
Another example:
- not all the requirements are satisfied --> new result (PASSED or FAILED) --> not all the requirements are satisfied --> no message will be emitted

BUT:
- all requirements are satisfied --> new FAILED result --> not all requirements are satisfied now --> new message about a decision change will be emitted

@gnaponie

But please keep in mind that Greenwave sends a message about a decision change only if there is actually a change!
I am not sure if this behavior will affect our CI/CD pipelines. Just in case, is there a way using messages to actively query a previously made decision by Greenwave?

Please let's separate the subject_type here for OSBS containers and these containers, so we do not mix them. Does that make sense?

@mvadkert Sounds good.

Hi, pull requests for new artifact types container-image and pull-request have been merged into the fedora-ci/messages repo (https://pagure.io/fedora-ci/messages/pull-request/18, https://pagure.io/fedora-ci/messages/pull-request/16). Can anyone take the task of supporting those new artifacts from the message bus?

@gnaponie

I set up a test instance of resultsdb, and this is a Result object that I generated from a container-image CI message:
https://resultsdb-test-9999-api-yuxzhu.cloud.paas.upshift.redhat.com/api/v2.0/results , search for factory2/waiverdb@sha256:0a5b21a3361b3b8fc43d3d2d6164fe2b3d17843f537f9848a26182046d1e97d5. Can you take a look and check if it is valid for Greenwave to consume?

The CI message can be found from https://jenkins-waiverdb-test.cloud.paas.upshift.redhat.com/job/waiverdb-test/job/waiverdb-test-stage-waiverdb-dev-integration-test/84/console

This is a successful build https://jenkins-waiverdb-test.cloud.paas.upshift.redhat.com/job/waiverdb-test/job/waiverdb-test-stage-waiverdb-dev-integration-test/87/console

Metadata Update from @gnaponie:
- Issue close_status updated to: Fixed
- Issue status updated to: Closed (was: Open)

Metadata