vmware-tanzu / cartographer

Cartographer is a Supply Chain Choreographer.
https://cartographer.sh
Apache License 2.0
446 stars 65 forks source link

Sequentially create pipeline objects #116

Open waciumawanjohi opened 2 years ago

waciumawanjohi commented 2 years ago

As a pipeline author I want to ensure that there is a clear 'latest' run (stamped object) so that I can reason about the ordering of my tests and other processes from my pipeline.

Problem: Given a scenario where a pipeline contains tests for a project, one can imagine multiple commits happening in short order. There's some non-determinism in the length of time that tests complete (especially failing ones). And so it could be very difficult to reason about the order of completed Pipeline stamped objects.

Given a pipeline that is creating objects that take non-zero time to reconcile
When two revisions are observed by the pipeline in quick succession
Then the second object (tied to the second revision) is not created until the first object status is observed to be not ready unknown

e.g. given an object matching the following yaml, wait and do not create a new object yet.

status:
    conditions:
        - type: Ready
          status: Unknown

Implementation can skip references. E.g. if 3 references were seen, it is ok if only the first and last are stamped.

jwntrs commented 2 years ago

@waciumawanjohi can we close this based on our decision from #4