Repository navigation
[minor] fix sync order adjustment v3 - #626
Merged
Merged
Conversation
This reverts commit a38042c.
added 6 commits
October 30, 2026 16:45
PDB (120) -> Manage install (500) -> Manage config (502) -> SDB (504) -> other apps (505+)
Contributor
Author
Contributor
Author
Side-by-Side Comparison:
|
| Application | Template | main |
fix-sync-order-adjustment-v3 |
Status |
|---|---|---|---|---|
| Manage Db2, PDB | 120-db2-databases-app.yaml |
120 |
120 |
unchanged |
| Manage Db2, SDB | 120-db2-databases-app.yaml |
121 |
504 |
changed |
| Facilities Db2, PDB | 120-db2-databases-app.yaml |
120 |
505 |
changed |
| Facilities Db2, SDB | 120-db2-databases-app.yaml |
121 |
509 |
changed |
| Monitor Db2, PDB | 120-db2-databases-app.yaml |
120 |
510 (>= 9.2) / 515 (< 9.2) |
changed |
| Monitor Db2, SDB | 120-db2-databases-app.yaml |
121 |
514 (>= 9.2) / 519 (< 9.2) |
changed |
| IoT Db2, PDB | 120-db2-databases-app.yaml |
120 |
515 (>= 9.2) / 510 (< 9.2) |
changed |
| IoT Db2, SDB | 120-db2-databases-app.yaml |
121 |
519 (>= 9.2) / 514 (< 9.2) |
changed |
| Health / Assist / VI / Optimizer / Predict Db2, PDB | 120-db2-databases-app.yaml |
120 |
520 / 525 / 530 / 535 / 540 |
changed |
| Health / Assist / VI / Optimizer / Predict Db2, SDB | 120-db2-databases-app.yaml |
121 |
524 / 529 / 534 / 539 / 544 |
changed |
| Db2 for an unknown app id, PDB / SDB | 120-db2-databases-app.yaml |
120 / 121 |
120 / 549 |
changed (SDB) |
Suite configs, ibm-mas-aicfg-config |
130-ibm-mas-suite-configs-app.yaml |
190 |
190 |
unchanged |
| Suite configs, all others | 130-ibm-mas-suite-configs-app.yaml |
130 |
130 |
unchanged |
Suite configs, JDBC of non-Manage app, incluster-db2 |
130-ibm-mas-suite-configs-app.yaml |
130 |
app jdbc wave (506, 511, ...) |
changed |
| Manage install | 500-ibm-mas-masapp-manage-install.yaml |
500 |
502 |
changed |
| Manage config | 510-550-ibm-mas-masapp-configs.yaml |
510 |
503 |
changed |
| Facilities install | 505-ibm-mas-masapp-facilities-install.yaml |
505 |
507 |
changed |
| Facilities config | 510-550-ibm-mas-masapp-configs.yaml |
510 |
508 |
changed |
| Assist install | 510-ibm-mas-masapp-assist-install.yaml |
510 |
527 |
changed |
| Assist config | 510-550-ibm-mas-masapp-configs.yaml |
515 |
528 |
changed |
| Visual Inspection install | 510-ibm-mas-masapp-visualinspection-install.yaml |
510 |
532 |
changed |
| Visual Inspection config | 510-550-ibm-mas-masapp-configs.yaml |
515 |
533 |
changed |
| IoT install, channel < 9.2 | 510-ibm-mas-masapp-iot-install.yaml |
510 |
512 |
changed |
| IoT install, channel >= 9.2 | 510-ibm-mas-masapp-iot-install.yaml |
520 |
517 |
changed |
| IoT config, channel < 9.2 | 510-550-ibm-mas-masapp-configs.yaml |
515 |
513 |
changed |
| IoT config, channel >= 9.2 | 510-550-ibm-mas-masapp-configs.yaml |
530 |
518 |
changed |
| Health install | 520-ibm-mas-masapp-health-install.yaml |
520 |
522 |
changed |
| Health config | 510-550-ibm-mas-masapp-configs.yaml |
530 |
523 |
changed |
| Monitor install, channel < 9.2 | 520-ibm-mas-masapp-monitor-install.yaml |
520 |
517 |
changed |
| Monitor install, channel >= 9.2 | 520-ibm-mas-masapp-monitor-install.yaml |
510 |
512 |
changed |
| Monitor config, channel < 9.2 | 510-550-ibm-mas-masapp-configs.yaml |
530 |
518 |
changed |
| Monitor config, channel >= 9.2 | 510-550-ibm-mas-masapp-configs.yaml |
515 |
513 |
changed |
| Optimizer install | 520-ibm-mas-masapp-optimizer-install.yaml |
520 |
537 |
changed |
| Optimizer config | 510-550-ibm-mas-masapp-configs.yaml |
530 |
538 |
changed |
| Predict install | 540-ibm-mas-masapp-predict-install.yaml |
540 |
542 |
changed |
| Predict config | 510-550-ibm-mas-masapp-configs.yaml |
550 |
543 |
changed |
| Addons config | 550-ibm-mas-addons-config.yaml |
551 |
551 |
unchanged |
| Application admin RBAC | 600-application-admin-rbac-app.yaml |
600 |
600 |
unchanged |
| Post-sync jobs | 600-ibm-post-sync-jobs.yaml |
600 |
600 |
unchanged |
The >= 9.2 / < 9.2 Monitor and IoT waves above assume both apps are on the same side of the 9.2 split. If either channel is >= 9.2, the helper uses the >= 9.2 ordering for both.
svt01
marked this pull request as ready for review
November 9, 2026 05:47
Contributor
Author
Block base wavesThe helper assigns each application a base wave. Within a block: PDB = base, JDBC config = base + 1, install = base + 2, config = base + 3, SDB = base + 4.
|
whitfiea
approved these changes
Nov 9, 2026
sumitjain-1901
approved these changes
Nov 11, 2026
mnivedithaa
approved these changes
Nov 13, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


Description
This PR reworks the ArgoCD sync-wave ordering for MAS GitOps so that each MAS application deploys as one contiguous block. The block order is Db2 PDB → JDBC config → app install → workspace config → Db2 SDB. The next application's block starts only after the previous one completes.
On
main, every Db2 PDB syncs at120and every SDB at121. That is long before the app schema exists, so HADR standby pairing can race the primary and the owning app. One slow or failing app also blocks unrelated apps.Changes:
ibm-mas-instance-root.syncwaveintemplates/_helpers.tplcomputes all root-level waves from the app id and step (pdb,jdbc,install,config,sdb). It replaces the duplicated per-template wave logic.120. Manage install, config and SDB follow at502,503and504. Non-Manage PDBs start at505+.>= 9.2, Monitor goes first, otherwise IoT does.mainevaluated the two channels independently, so this is a small behaviour change.130-ibm-mas-suite-configs-app.yaml). It moves into the app block, at PDB + 1. Previously it stayed at130after the PDB moved to505+, so ArgoCD failed with an AVPResourceNotFoundExceptionbecause the Db2postsync-setup-db2job had not yet written the secret. Having its own wave before the install also avoids a "missing JDBC binding" race.+600offset (720–723). HADR services are fixed at720. HADR pairing RBAC and job move from128/130to728/730. The primary backup CronJob is pinned to525.README.mdis updated with the new deployment sequence.sync-wave-adjustments.mdis added as the reference and porting spec.Related Issues
https://jsw.ibm.com/browse/MASCORE-19150
https://jsw.ibm.com/browse/MASCORE-20414
https://jsw.ibm.com/browse/MASCORE-21538
How Has This Been Tested?
1. Static checks (
helm-lint.sh)./build/bin/helm-lint.sh -p root-applications/ibm-mas-instance-rootExit code:
0./build/bin/helm-lint.sh -p instance-applications/120-ibm-db2u-databaseExit code:
0Both charts lint with
0 chart(s) failed. The only message is the informationalChart.yaml: icon is recommended.2. Rendered sync-wave order
The chart's default
values.yamlrenders almost nothing, so I rendered it with synthetic values that enable all nine apps.-sdb), a workspace config and an in-cluster Db2 JDBC config.9.2.xor9.1.x).9.1.x.Each Application's
argocd.argoproj.io/sync-waveannotation was then extracted and sorted in ascending order.Test values (
values-92.yaml;values-91.yamldiffers only in the Monitor/IoTmas_app_channel)Case A: Monitor or IoT channel
>= 9.2(Monitor first)0syncres.cluster1.inst110syncjobs.cluster1.inst1110db2u.cluster1.inst1120db2-db.cluster1.inst1.manage130jdbc-wsapp-main-manage.cluster1130suite.cluster1.inst1190aicfg.cluster1200ws1.suite.cluster1.inst1502manage.cluster1.inst1503ws1.manage.cluster1.inst1504db2-db.cluster1.inst1.manage-sdb505db2-db.cluster1.inst1.facilities506jdbc-wsapp-main-facilities.cluster1507facilities.cluster1.inst1508ws1.facilities.cluster1.inst1509db2-db.cluster1.inst1.facilities-sdb510db2-db.cluster1.inst1.monitor511jdbc-wsapp-main-monitor.cluster1512monitor.cluster1.inst1513ws1.monitor.cluster1.inst1514db2-db.cluster1.inst1.monitor-sdb515db2-db.cluster1.inst1.iot516jdbc-wsapp-main-iot.cluster1517iot.cluster1.inst1518ws1.iot.cluster1.inst1519db2-db.cluster1.inst1.iot-sdb520db2-db.cluster1.inst1.health521jdbc-wsapp-main-health.cluster1522health.cluster1.inst1523ws1.health.cluster1.inst1524db2-db.cluster1.inst1.health-sdb525db2-db.cluster1.inst1.assist526jdbc-wsapp-main-assist.cluster1527assist.cluster1.inst1528ws1.assist.cluster1.inst1529db2-db.cluster1.inst1.assist-sdb530db2-db.cluster1.inst1.visualinspection531jdbc-wsapp-main-visualinspection.cluster1532visualinspection.cluster1.inst1533ws1.visualinspection.cluster1.inst1534db2-db.cluster1.inst1.visualinspection-sdb535db2-db.cluster1.inst1.optimizer536jdbc-wsapp-main-optimizer.cluster1537optimizer.cluster1.inst1538ws1.optimizer.cluster1.inst1539db2-db.cluster1.inst1.optimizer-sdb540db2-db.cluster1.inst1.predict541jdbc-wsapp-main-predict.cluster1542predict.cluster1.inst1543ws1.predict.cluster1.inst1544db2-db.cluster1.inst1.predict-sdb551addons.cluster1.inst1600application-admin-rbac.cluster1.inst1600postsyncjobs.cluster1.inst1Case B: Monitor and IoT channel
< 9.2(IoT first)0syncres.cluster1.inst110syncjobs.cluster1.inst1110db2u.cluster1.inst1120db2-db.cluster1.inst1.manage130jdbc-wsapp-main-manage.cluster1130suite.cluster1.inst1190aicfg.cluster1200ws1.suite.cluster1.inst1502manage.cluster1.inst1503ws1.manage.cluster1.inst1504db2-db.cluster1.inst1.manage-sdb505db2-db.cluster1.inst1.facilities506jdbc-wsapp-main-facilities.cluster1507facilities.cluster1.inst1508ws1.facilities.cluster1.inst1509db2-db.cluster1.inst1.facilities-sdb510db2-db.cluster1.inst1.iot511jdbc-wsapp-main-iot.cluster1512iot.cluster1.inst1513ws1.iot.cluster1.inst1514db2-db.cluster1.inst1.iot-sdb515db2-db.cluster1.inst1.monitor516jdbc-wsapp-main-monitor.cluster1517monitor.cluster1.inst1518ws1.monitor.cluster1.inst1519db2-db.cluster1.inst1.monitor-sdb520db2-db.cluster1.inst1.health521jdbc-wsapp-main-health.cluster1522health.cluster1.inst1523ws1.health.cluster1.inst1524db2-db.cluster1.inst1.health-sdb525db2-db.cluster1.inst1.assist526jdbc-wsapp-main-assist.cluster1527assist.cluster1.inst1528ws1.assist.cluster1.inst1529db2-db.cluster1.inst1.assist-sdb530db2-db.cluster1.inst1.visualinspection531jdbc-wsapp-main-visualinspection.cluster1532visualinspection.cluster1.inst1533ws1.visualinspection.cluster1.inst1534db2-db.cluster1.inst1.visualinspection-sdb535db2-db.cluster1.inst1.optimizer536jdbc-wsapp-main-optimizer.cluster1537optimizer.cluster1.inst1538ws1.optimizer.cluster1.inst1539db2-db.cluster1.inst1.optimizer-sdb540db2-db.cluster1.inst1.predict541jdbc-wsapp-main-predict.cluster1542predict.cluster1.inst1543ws1.predict.cluster1.inst1544db2-db.cluster1.inst1.predict-sdb551addons.cluster1.inst1600application-admin-rbac.cluster1.inst1600postsyncjobs.cluster1.inst1Verification against the block table
>= 9.2)< 9.2)120, then install502, config503, SDB504505-509(PDB, JDBC, install, config, SDB)510-514515-519520-524, Assist525-529, Visual Inspection530-534, Optimizer535-539, Predict540-544506,511,516, ...)130,aicfgat190, workspaces at200551, RBAC and post-sync jobs600run after every blockThis instance
test20414is created to check the sync-wave ordering for various apps. This instance has all the applications deployed successfully,