@@ -4,35 +4,114 @@ All `argocd.argoproj.io/sync-wave` assignments in `layered-zero-trust`.
44
55A +31 offset was applied to every value so that all waves are positive (>= 1), preserving the original relative ordering. This accommodates the Validated Patterns operator applying the Argo CD super-role later than before, which caused resources with negative sync waves to fail.
66
7+ ## Unified deployment timeline
8+
9+ Every sync-wave in the repository, in order. ** App** = hub-level Argo CD Application creation. ** chart** = resource inside a chart (resolved locally within that app's sync). ** sub** = operator Subscription.
10+
11+ | Wave | Component | Scope | What |
12+ | ---: | --- | --- | --- |
13+ | 1 | compliance-scanning | ** App** | Argo CD Application created on hub |
14+ | 5 | acm | ** App** | |
15+ | 5 | rh-cert-manager | ** App** | |
16+ | 10 | acm-managed-clusters | ** App** | |
17+ | 21 | ztvp-certificates | ** App** | |
18+ | 21 | └ compliance-scanning | chart | apiserver-encryption, pvc, scan-setting, scan-setting-binding |
19+ | 22 | └ ztvp-certificates | chart | RBAC (7 resources), configmap-script |
20+ | 23 | └ ztvp-certificates | chart | ca-extraction-job-initial, ca-extraction-cronjob |
21+ | 25 | vault | ** App** | |
22+ | 25 | └ ztvp-certificates | chart | managedclusterset-binding |
23+ | 26 | └ ztvp-certificates | chart | distribution-policy (3 resources) |
24+ | 26 | └ openshift-storage | ns | Namespace + OperatorGroup |
25+ | 26 | └ rhtpa-operator | ns | Namespace + OperatorGroup |
26+ | 27 | └ odf | sub | ODF operator install |
27+ | 27 | └ rhtpa-operator | sub | RHTPA operator install |
28+ | 28 | └ quay-operator | sub | Quay operator install |
29+ | 29 | └ rhtas-operator | sub | RHTAS operator install |
30+ | 30 | golang-external-secrets | ** App** | |
31+ | 30 | zero-trust-workload-identity-manager | ** App** | |
32+ | 31 | └ rhtpa-operator | chart | ingress-ca-job (SA, Role, RoleBinding, ConfigMap, Job) |
33+ | 32 | └ rhtpa-operator | chart | operator-rolebinding (2 bindings) |
34+ | 32 | └ noobaa-mcg | chart | default-backingstore |
35+ | 32 | └ acs-central | chart | rbac/* (SA, Role, ClusterRole, bindings) |
36+ | 32 | └ quay-enterprise | ns | Namespace |
37+ | 32 | └ trusted-artifact-signer | ns | Namespace |
38+ | 32 | └ trusted-profile-analyzer | ns | Namespace |
39+ | 33 | └ rhtpa-operator | chart | ingress-ca-job (completion Job) |
40+ | 33 | └ noobaa-mcg | chart | noobaa-system |
41+ | 34 | └ rhtpa-operator | chart | oidc-cli-secret |
42+ | 34 | └ noobaa-mcg | chart | bucket-class |
43+ | 35 | rh-keycloak | ** App** | |
44+ | 36 | noobaa-mcg | ** App** | |
45+ | 36 | └ rhtpa-operator | chart | postgresql-serviceaccount, postgresql-external-secret, object-bucket-claim |
46+ | 36 | └ keycloak | chart | keycloak.yaml (Keycloak CR) |
47+ | 36 | └ quay-registry | chart | object-bucket-claim |
48+ | 36 | └ acs-central | chart | admin-password-secret, central-htpasswd-external-secret, keycloak-client-secret-external-secret |
49+ | 36 | └ qtodo | chart | truststore-secret-external-secret |
50+ | 37 | └ quay-registry | chart | quay-s3-setup-serviceaccount (5 resources) |
51+ | 37 | └ acs-central | chart | create-htpasswd-field (Job) |
52+ | 38 | qtodo | ** App** | |
53+ | 38 | └ quay-registry | chart | quay-config-bundle-secret |
54+ | 39 | └ rhtpa-operator | chart | s3-credentials-secret |
55+ | 39 | └ quay-registry | chart | quay-s3-credentials-job |
56+ | 41 | acs-central | ** App** | |
57+ | 41 | quay-registry | ** App** | |
58+ | 41 | trusted-profile-analyzer | ** App** | |
59+ | 41 | └ rhtpa-operator | chart | postgresql-statefulset, postgresql-service |
60+ | 41 | └ keycloak | chart | keycloak-realm-import |
61+ | 41 | └ quay-registry | chart | quay-registry (QuayRegistry CR) |
62+ | 41 | └ acs-central | chart | central-cr (Central CR) |
63+ | 41 | └ qtodo | chart | postgresql-statefulset, postgresql-service, qtodo-truststore-config |
64+ | 43 | └ acs-central | chart | create-cluster-init-bundle (Job) |
65+ | 44 | └ acs-central | chart | create-auth-provider (Job) |
66+ | 46 | acs-secured-cluster | ** App** | |
67+ | 46 | trusted-artifact-signer | ** App** | |
68+ | 46 | └ acs-central | chart | console-link |
69+ | 46 | └ acs-secured-cluster | chart | secured-cluster-cr |
70+ | 46 | └ rhtas-operator | chart | securesign |
71+ | 48 | supply-chain | ** App** | |
72+ | 49 | └ rhtpa-operator | chart | spiffe-helper-config |
73+ | 51 | └ rhtpa-operator | chart | trusted-profile-analyzer (supporting objects) |
74+ | 51 | └ qtodo | chart | app-deployment, app-service |
75+ | 51 | └ supply-chain | chart | workspaces |
76+ | 71 | └ rhtpa-operator | chart | operator-readiness-check (SA, Role, Job) |
77+ | 81 | └ rhtpa-operator | chart | trusted-profile-analyzer (Policy/CR) |
78+
779## Application-level waves (` values-hub.yaml ` )
880
9- These control when each Argo CD Application syncs relative to other Applications.
10-
11- | Application | Old | Current | Comment | Active? |
12- | --- | ---: | ---: | --- | --- |
13- | compliance-scanning | -30 | 1 | Earliest app | yes |
14- | ztvp-certificates | -10 | 21 | Custom CA distribution | yes |
15- | openshift-storage (OperatorGroup) | -5 | 26 | Propagated to OperatorGroup | commented |
16- | rhtpa-operator (namespace) | -5 | 26 | Before operator subscription | commented |
17- | odf (subscription) | -4 | 27 | After OperatorGroup (26) | commented |
18- | rhtpa-operator (subscription) | -4 | 27 | After OperatorGroup (26) | commented |
19- | quay-operator (subscription) | -3 | 28 | After ODF operator | commented |
20- | rhtas-operator (subscription) | -2 | 29 | After Quay operator | commented |
21- | quay-enterprise (namespace) | 1 | 32 | Before NooBaa and Quay components | commented |
22- | trusted-artifact-signer (namespace) | 1 | 32 | Auto-created by RHTAS operator | commented |
23- | trusted-profile-analyzer (namespace) | 1 | 32 | Before RHTPA components | commented |
24- | noobaa-mcg | 5 | 36 | Deploy after core services | commented |
25- | acs-central | 10 | 41 | — | yes |
26- | quay-registry | 10 | 41 | Deploy after NooBaa | commented |
27- | trusted-profile-analyzer | 10 | 41 | Chart resources (OBC, DB, etc.) | commented |
28- | acs-secured-cluster | 15 | 46 | — | yes |
29- | trusted-artifact-signer | 15 | 46 | Deploy after dependencies | commented |
81+ | Application | Old | Current | Comment |
82+ | --- | ---: | ---: | --- |
83+ | compliance-scanning | -30 | 1 | Earliest app |
84+ | rh-cert-manager | — | 5 | Infrastructure, early (newly added) |
85+ | acm | — | 5 | Infrastructure, early (newly added) |
86+ | acm-managed-clusters | — | 10 | After ACM (newly added) |
87+ | ztvp-certificates | -10 | 21 | Custom CA distribution |
88+ | vault | — | 25 | Core secret store (newly added) |
89+ | openshift-storage (OperatorGroup) | -5 | 26 | Propagated to OperatorGroup |
90+ | rhtpa-operator (namespace) | -5 | 26 | Before operator subscription |
91+ | odf (subscription) | -4 | 27 | After OperatorGroup (26) |
92+ | rhtpa-operator (subscription) | -4 | 27 | After OperatorGroup (26) |
93+ | quay-operator (subscription) | -3 | 28 | After ODF operator |
94+ | rhtas-operator (subscription) | -2 | 29 | After Quay operator |
95+ | golang-external-secrets | — | 30 | After Vault (newly added) |
96+ | zero-trust-workload-identity-manager | — | 30 | After Vault/certs (newly added) |
97+ | quay-enterprise (namespace) | 1 | 32 | Before NooBaa and Quay components |
98+ | trusted-artifact-signer (namespace) | 1 | 32 | Auto-created by RHTAS operator |
99+ | trusted-profile-analyzer (namespace) | 1 | 32 | Before RHTPA components |
100+ | rh-keycloak | — | 35 | After ZTWIM for SPIFFE IdP (newly added) |
101+ | noobaa-mcg | 5 | 36 | Deploy after core services |
102+ | qtodo | — | 38 | After Keycloak, Vault (newly added) |
103+ | acs-central | 10 | 41 | — |
104+ | quay-registry | 10 | 41 | Deploy after NooBaa |
105+ | trusted-profile-analyzer | 10 | 41 | Chart resources (OBC, DB, etc.) |
106+ | acs-secured-cluster | 15 | 46 | — |
107+ | trusted-artifact-signer | 15 | 46 | Deploy after dependencies |
108+ | supply-chain | — | 48 | After RHTAS/ACS, before chart templates (newly added) |
30109
31110## Chart-level waves (templates)
32111
33- These control resource ordering within a single Application's sync.
112+ These control resource ordering within a single Application's sync. Template waves are resolved locally within each app, not globally across all apps.
34113
35- ### compliance-scanning (` charts/compliance-scanning/templates/ ` )
114+ ### compliance-scanning (` charts/compliance-scanning/templates/ ` ) — App wave: 1
36115
37116| Resource | Old | Current |
38117| --- | ---: | ---: |
@@ -41,7 +120,7 @@ These control resource ordering within a single Application's sync.
41120| scan-setting.yaml | -10 | 21 |
42121| scan-setting-binding.yaml | -10 | 21 |
43122
44- ### ztvp-certificates (` charts/ztvp-certificates/templates/ ` )
123+ ### ztvp-certificates (` charts/ztvp-certificates/templates/ ` ) — App wave: 21
45124
46125| Resource | Old | Current |
47126| --- | ---: | ---: |
@@ -52,41 +131,22 @@ These control resource ordering within a single Application's sync.
52131| managedclusterset-binding.yaml | -6 | 25 |
53132| distribution-policy.yaml (3 resources) | -5 | 26 |
54133
55- ### rhtpa-operator (` charts/rhtpa-operator/templates/ ` )
56-
57- | Resource | Old | Current |
58- | --- | ---: | ---: |
59- | ingress-ca-job.yaml (SA, Role, RoleBinding, ConfigMap, Job) | 0 | 31 |
60- | operator-rolebinding.yaml (2 bindings) | 1 | 32 |
61- | ingress-ca-job.yaml (completion Job) | 2 | 33 |
62- | oidc-cli-secret.yaml | 3 | 34 |
63- | postgresql-serviceaccount.yaml | 5 | 36 |
64- | postgresql-external-secret.yaml | 5 | 36 |
65- | object-bucket-claim.yaml | 5 | 36 |
66- | s3-credentials-secret.yaml | 8 | 39 |
67- | postgresql-statefulset.yaml | 10 | 41 |
68- | postgresql-service.yaml | 10 | 41 |
69- | spiffe-helper-config.yaml | 18 | 49 |
70- | trusted-profile-analyzer.yaml (supporting objects) | 20 | 51 |
71- | operator-readiness-check.yaml (SA, Role, Job) | 40 | 71 |
72- | trusted-profile-analyzer.yaml (Policy/CR) | 50 | 81 |
73-
74- ### noobaa-mcg (` charts/noobaa-mcg/templates/ ` )
134+ ### noobaa-mcg (` charts/noobaa-mcg/templates/ ` ) — App wave: 36
75135
76136| Resource | Old | Current |
77137| --- | ---: | ---: |
78138| default-backingstore.yaml | 1 | 32 |
79139| noobaa-system.yaml | 2 | 33 |
80140| bucket-class.yaml | 3 | 34 |
81141
82- ### keycloak (` charts/keycloak/templates/ ` )
142+ ### keycloak (` charts/keycloak/templates/ ` ) — App wave: 35
83143
84144| Resource | Old | Current |
85145| --- | ---: | ---: |
86146| keycloak.yaml | 5 | 36 |
87147| keycloak-realm-import.yaml | 10 | 41 |
88148
89- ### quay-registry (` charts/quay-registry/templates/ ` )
149+ ### quay-registry (` charts/quay-registry/templates/ ` ) — App wave: 41
90150
91151| Resource | Old | Current |
92152| --- | ---: | ---: |
@@ -96,7 +156,7 @@ These control resource ordering within a single Application's sync.
96156| quay-s3-credentials-job.yaml | 8 | 39 |
97157| quay-registry.yaml | 10 | 41 |
98158
99- ### acs-central (` charts/acs-central/templates/ ` )
159+ ### acs-central (` charts/acs-central/templates/ ` ) — App wave: 41
100160
101161| Resource | Old | Current |
102162| --- | ---: | ---: |
@@ -110,19 +170,38 @@ These control resource ordering within a single Application's sync.
110170| create-auth-provider.yaml (Job) | 13 | 44 |
111171| console-link.yaml | 15 | 46 |
112172
113- ### acs-secured-cluster (` charts/acs-secured-cluster/templates/ ` )
173+ ### acs-secured-cluster (` charts/acs-secured-cluster/templates/ ` ) — App wave: 46
114174
115175| Resource | Old | Current |
116176| --- | ---: | ---: |
117177| secured-cluster-cr.yaml | 15 | 46 |
118178
119- ### rhtas-operator (` charts/rhtas-operator/templates/ ` )
179+ ### rhtas-operator (` charts/rhtas-operator/templates/ ` ) — App wave: 46
120180
121181| Resource | Old | Current |
122182| --- | ---: | ---: |
123183| securesign.yaml | 15 | 46 |
124184
125- ### qtodo (` charts/qtodo/templates/ ` )
185+ ### rhtpa-operator (` charts/rhtpa-operator/templates/ ` ) — App wave: 41
186+
187+ | Resource | Old | Current |
188+ | --- | ---: | ---: |
189+ | ingress-ca-job.yaml (SA, Role, RoleBinding, ConfigMap, Job) | 0 | 31 |
190+ | operator-rolebinding.yaml (2 bindings) | 1 | 32 |
191+ | ingress-ca-job.yaml (completion Job) | 2 | 33 |
192+ | oidc-cli-secret.yaml | 3 | 34 |
193+ | postgresql-serviceaccount.yaml | 5 | 36 |
194+ | postgresql-external-secret.yaml | 5 | 36 |
195+ | object-bucket-claim.yaml | 5 | 36 |
196+ | s3-credentials-secret.yaml | 8 | 39 |
197+ | postgresql-statefulset.yaml | 10 | 41 |
198+ | postgresql-service.yaml | 10 | 41 |
199+ | spiffe-helper-config.yaml | 18 | 49 |
200+ | trusted-profile-analyzer.yaml (supporting objects) | 20 | 51 |
201+ | operator-readiness-check.yaml (SA, Role, Job) | 40 | 71 |
202+ | trusted-profile-analyzer.yaml (Policy/CR) | 50 | 81 |
203+
204+ ### qtodo (` charts/qtodo/templates/ ` ) — App wave: 38
126205
127206| Resource | Old | Current |
128207| --- | ---: | ---: |
@@ -133,7 +212,7 @@ These control resource ordering within a single Application's sync.
133212| app-deployment.yaml | 20 | 51 |
134213| app-service.yaml | 20 | 51 |
135214
136- ### supply-chain (` charts/supply-chain/templates/ ` )
215+ ### supply-chain (` charts/supply-chain/templates/ ` ) — App wave: 48
137216
138217| Resource | Old | Current |
139218| --- | ---: | ---: |
@@ -144,3 +223,10 @@ These control resource ordering within a single Application's sync.
144223| Resource | Old | Current |
145224| --- | ---: | ---: |
146225| noobaa-mcg example | 5 | 36 |
226+
227+ ## Notes
228+
229+ - ** "Old"** = value before the +31 offset. ** "—"** = no sync-wave existed (defaulted to 0).
230+ - ** "Current"** = value after the +31 offset plus newly added application-level annotations.
231+ - Template waves are resolved ** locally within each app sync** , not globally. A template wave of 32 inside acs-central (app wave 41) does not conflict with a template wave of 32 inside noobaa-mcg (app wave 36); they run independently.
232+ - Sync waves control ** Application creation order** , not readiness. A later wave means the Application resource is submitted to the hub later, but the earlier app's pods may not be fully running yet. For hard readiness gates, use Argo CD health checks or resource hooks.
0 commit comments