Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[major] Pick up ibm.mas_devops v19 #827

Merged
merged 48 commits into from
May 15, 2024
Merged

[major] Pick up ibm.mas_devops v19 #827

merged 48 commits into from
May 15, 2024

Conversation

durera
Copy link
Contributor

@durera durera commented Mar 7, 2024

Ansible Update

FVT Evolution

Evolution of the way MAS FVT is handled, turning it into a generic system that can be re-used by customers as a simple approval system supporting approval points for multiple stages of the install pipeline leveraging a series of configmaps:

  • approval-suite-verify (after the Core platform has been installed & configured)
  • approval-app-cfg-assist (after Assist has been installed and configured)
  • approval-app-cfg-iot (after IoT has been installed and configured)
  • approval-app-cfg-manage (after Manage has been installed and configured)
  • approval-app-cfg-monitor (after Monitor has been installed and configured)
  • approval-app-cfg-predict (after Predict has been installed and configured)
  • approval-app-cfg-optimizer (after Optimizer has been installed and configured)
  • approval-app-cfg-visualinspection (after Visual Inspection has been installed and configured)

This system allows users to prevent the pipeline proceeding until an update is made to a configmap in the pipelines namespace. How that configmap is updated is completely up to the customer, it could be a manual process (bad) which allows a manual review of the update as it progresses, or (good) it could be being updated by parallel automation running alongside the install pipeline.

MAS FVT is an excellent example of how to use this system:

First, we create empty configmaps for all of the approval points we want to enable

---
apiVersion: v1
kind: ConfigMap
metadata:
  name: approval-suite-verify
  namespace: mas-fvtcore-pipelines
data:
  MAX_RETRIES: "50"
  DELAY: "300"
  IGNORE_FAILRE: "true"
  CONFIGMAP_KEY: "FVT_STATUS"

Then we start two pipelines' mas-install and mas-fvt. Where the two need to coordinate activities the configmaps are used: mas-install will initialise FVT_STATUS=pending in the configmap, this is the trigger for the mas-fvt pipeline to start the appropriate FVT tied to that approval, the mas-install pipeline will not progress further until the value is changed from pending to approved, which the mas-fvt pipeline does once testing is complete.

The existence of the configmap with the key CONFIGMAP_KEY is what enables this system. If the configmap does not exist, of CONFIGMAP_KEY is not set, then nothing additional happens compared to what a normal customer install is today

The task in the install pipeline:
image

The task in the fvt pipeline:
image

Neither task in eithe pipleine knows about the other, they just know about the configmap, which acts as the bridge to synchronize the activities of the two pipelines; but it could just as easily synchronize any parallel activity that we want to sync up to certain stages in the install pipeline.

Breaking Changes

  • Removal of support for Health & Predict Utilities install
  • Removal of Watson Discovery support from install pipeline

@durera durera marked this pull request as ready for review May 15, 2024 16:18
@durera durera merged commit 200f09e into master May 15, 2024
3 checks passed
@durera durera deleted the majorup branch May 15, 2024 20:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants