airshipit / treasuremap

Reference Airship manifests, CICD, and reference architecture.
http://openstack.org
Apache License 2.0
52 stars 39 forks source link

Need Process to Keep airshipctl and treasuremap versions aligned #100

Closed lb4368 closed 3 years ago

lb4368 commented 3 years ago

Problem description Sometimes updates made in airshipctl can cause problems in treasuremap builds if corresponding updates are not made.

Proposed change 1) Create a Treasuremap build to nightly pin airshipctl version to keep a stable working version of treasuremap. 2) Create a gate to validate that its safe to update airshipctl.

sirajyasin commented 3 years ago

I can start working on this issue

seaneagan commented 3 years ago

Alternatively, instead of nightly updating the treasuremap pin ( 1. ), we could use the results of ( 2. ) as a release gate for publishing a new semantic version of airshipctl e.g. 2.0.6. We can then pin to these patch versions explicitly, or we can pin to a minor e.g. 2.0 or major e.g.2` version, as implemented in https://review.opendev.org/c/airship/airshipctl/+/762924/ which means we will not have to actually update the pin as it will move with new stable versions being published.

sirajyasin commented 3 years ago

@seaneagan , Thanks for your suggestion to use the semantic version of airshipctl. The concern is, it is not just about uplifting treasuremap with airshipctl version, it should also be accompanied by the respective manifest changes in treasuremap to align with latest version of airshipctl. So the commit should have airshipctl version uplift together with the respective manifest changes in treasuremap. Only then zuul can use that combination and gate the changes. Please let me know if i did not explain well.

sirajyasin commented 3 years ago

We have created a jenkins nightly job to validate the test-site of treasuremap using latest of treasuremap v2 with latest from airshipctl master.

https://jenkins.nc.opensource.att.com/job/development/job/Treasuremap/job/TreasuremapV2-AirshipctlMaster/

Success: Confirms that the latest commit from airshipctl for validation is compatible with treasuremap v2 Failure: Latest changes of Airshipctl is not comaptabile with treasuremap v2 and it need further investigation to align treasuremap manifest with latest changes of airshipctl

We also have another Job to validate the treasuremap stability with commit locked version of airshipctl.

https://jenkins.nc.opensource.att.com/job/development/job/Treasuremap/job/Treasuremapv2-AirshipctlKnownState/

Success: Latest of treasuremap is stable Failure: Latest merges in treasuremap needs to be investigated for failure.

sirajyasin commented 3 years ago

@lb4368 , can we mark this issue completed with the above pipelines working to validate the code stability of treasuremap v2 and treasuremap v2 compatibility with airshictl master

lb4368 commented 3 years ago

Closing per implementation above

drewwalters96 commented 3 years ago

Create a Treasuremap build to nightly pin airshipctl version to keep a stable working version of treasuremap.

Have we automated this yet? It's great that we have a job that's validating against the latest airshipctl builds, but if nothing is actually doing the pinning, the onus is on a developer to remember check the nightly builds and move this pin. In the case of success, it would be a lot easier to merge a gerrit change, like we had in Airship 1.

sirajyasin commented 3 years ago

@drewwalters96 , Thanks for your feedback. I agree, for success scenario we can automate to push a gerrit commit with the airshipctl_ref uplifted in treasuremap.

I will try to implement that in the pipeline. If required will track that work with a new issue

drewwalters96 commented 3 years ago

Thanks @sirajyasin. I don't think it's something we need to solve today, but maybe after the release. In the case of an error, we could also file a GitHub issue so that someone can fix the incompatibilities.