Skip to content

Commit 16ff5ab

Browse files
committed
Add documentation on values for the Supply Chain use case
Signed-off-by: Manuel Lorenzo <mlorenzofr@redhat.com>
1 parent 66b2766 commit 16ff5ab

1 file changed

Lines changed: 181 additions & 2 deletions

File tree

docs/supply-chain.md

Lines changed: 181 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,185 @@ In our demo, we will use a number of additional ZTVP components. These component
3636
* [Multicloud Object Gateway](https://docs.redhat.com/en/documentation/red_hat_openshift_container_storage/4.8/html/managing_hybrid_and_multicloud_resources/index) is a data service for OpenShift that provides an S3-compatible object storage. In our case, this component is necessary to provide a storage system to Quay.
3737
* [Red Hat OpenShift Pipelines](https://docs.redhat.com/en/documentation/red_hat_openshift_pipelines/1.20) is a cloud-native CI/CD solution built on the Tekton framework. We will use this product to automate our secure supply chain process, but you could use your own CI/CD solution if one exists.
3838

39+
### Defining the values
40+
41+
To enable this use case, the following parameters should be defined within the [values-hub.yaml](../values-hub.yaml) file
42+
43+
* In the `clustergroup.namespaces` section, create the _Namespaces_ for the components by uncommenting the following
44+
45+
```shell
46+
- openshift-storage:
47+
operatorGroup: true
48+
targetNamespace: openshift-storage
49+
annotations:
50+
openshift.io/cluster-monitoring: "true"
51+
argocd.argoproj.io/sync-wave: "26" # Propagated to OperatorGroup by framework
52+
- quay-enterprise:
53+
annotations:
54+
argocd.argoproj.io/sync-wave: "32" # Create before NooBaa and all Quay components
55+
labels:
56+
openshift.io/cluster-monitoring: "true"
57+
- trusted-artifact-signer:
58+
annotations:
59+
argocd.argoproj.io/sync-wave: "32" # Auto-created by RHTAS operator
60+
labels:
61+
openshift.io/cluster-monitoring: "true"
62+
- rhtpa-operator:
63+
operatorGroup: true
64+
targetNamespace: rhtpa-operator
65+
annotations:
66+
argocd.argoproj.io/sync-wave: "26" # Create before operator subscription
67+
- trusted-profile-analyzer:
68+
annotations:
69+
argocd.argoproj.io/sync-wave: "32" # Create before RHTPA components
70+
labels:
71+
openshift.io/cluster-monitoring: "true"
72+
- openshift-pipelines
73+
```
74+
75+
* In the `clusterGroup.subscriptions` section, create the _Subscriptions_ for the components operators by uncommenting the following:
76+
77+
```shell
78+
openshift-pipelines:
79+
name: openshift-pipelines-operator-rh
80+
namespace: openshift-operators
81+
odf:
82+
name: odf-operator
83+
namespace: openshift-storage
84+
channel: stable-4.20
85+
annotations:
86+
argocd.argoproj.io/sync-wave: "27" # Install after OperatorGroup (26)
87+
quay-operator:
88+
name: quay-operator
89+
namespace: openshift-operators
90+
channel: stable-3.15
91+
annotations:
92+
argocd.argoproj.io/sync-wave: "28" # Install after ODF operator
93+
rhtas-operator:
94+
name: rhtas-operator
95+
namespace: openshift-operators
96+
channel: stable
97+
annotations:
98+
argocd.argoproj.io/sync-wave: "29" # Install after Quay operator, before applications
99+
catalogSource: redhat-operators
100+
rhtpa-operator:
101+
name: rhtpa-operator
102+
namespace: rhtpa-operator # MUST use dedicated namespace (not openshift-operators)
103+
channel: stable-v1.1 # Use stable-v1.1 channel for 1.1.x updates
104+
catalogSource: redhat-operators
105+
annotations:
106+
argocd.argoproj.io/sync-wave: "27" # Install after OperatorGroup (26), before applications
107+
```
108+
109+
* Configure the Argo CD _Applications_:
110+
111+
```shell
112+
noobaa-mcg:
113+
name: noobaa-mcg
114+
namespace: openshift-storage
115+
project: hub
116+
path: charts/noobaa-mcg
117+
annotations:
118+
argocd.argoproj.io/sync-wave: "36" # Deploy after core services
119+
quay-registry:
120+
name: quay-registry
121+
namespace: quay-enterprise
122+
project: hub
123+
path: charts/quay-registry
124+
annotations:
125+
argocd.argoproj.io/sync-wave: "41" # Deploy after NooBaa storage backend
126+
trusted-artifact-signer:
127+
name: trusted-artifact-signer
128+
namespace: trusted-artifact-signer
129+
project: hub
130+
path: charts/rhtas-operator
131+
annotations:
132+
argocd.argoproj.io/sync-wave: "46" # Deploy after dependencies
133+
overrides:
134+
- name: rhtas.zeroTrust.spire.enabled
135+
value: "true"
136+
- name: rhtas.zeroTrust.spire.trustDomain
137+
value: "apps.{{ $.Values.global.clusterDomain }}"
138+
- name: rhtas.zeroTrust.spire.issuer
139+
value: "https://spire-spiffe-oidc-discovery-provider.apps.{{ $.Values.global.clusterDomain }}"
140+
- name: rhtas.zeroTrust.email.enabled
141+
value: "true"
142+
- name: rhtas.zeroTrust.email.issuer
143+
value: https://keycloak.apps.{{ $.Values.global.clusterDomain }}/realms/ztvp
144+
trusted-profile-analyzer:
145+
name: trusted-profile-analyzer
146+
namespace: trusted-profile-analyzer
147+
project: hub
148+
path: charts/rhtpa-operator
149+
annotations:
150+
argocd.argoproj.io/sync-wave: "41" # Create chart resources (OBC, DB, etc.)
151+
ignoreDifferences:
152+
- group: batch
153+
kind: Job
154+
jsonPointers:
155+
- /status
156+
overrides:
157+
- name: rhtpa.zeroTrust.vault.url
158+
value: https://vault.vault.svc.cluster.local:8200
159+
- name: rhtpa.modules.createImporters.importers.cve.cve.disabled
160+
value: "false"
161+
- name: rhtpa.modules.createImporters.importers.osv-github.osv.disabled
162+
value: "false"
163+
- name: rhtpa.modules.createImporters.importers.redhat-csaf.csaf.disabled
164+
value: "false"
165+
- name: rhtpa.modules.createImporters.importers.quay-redhat-user-workloads.quay.disabled
166+
value: "false"
167+
- name: rhtpa.modules.createImporters.importers.redhat-sboms.sbom.disabled
168+
value: "false"
169+
supply-chain:
170+
name: supply-chain
171+
project: hub
172+
path: charts/supply-chain
173+
annotations:
174+
argocd.argoproj.io/sync-wave: "48"
175+
ignoreDifferences:
176+
- group: ""
177+
kind: ServiceAccount
178+
jqPathExpressions:
179+
- .imagePullSecrets[]|select(.name | contains("-dockercfg-"))
180+
overrides:
181+
- name: rhtas.enabled
182+
value: true
183+
- name: rhtpa.enabled
184+
value: true
185+
- name: registry.tlsVerify
186+
value: "false"
187+
- name: registry.user
188+
value: quay-admin
189+
- name: registry.passwordVaultKey
190+
value: quay-admin-password
191+
```
192+
193+
* `applications.vault.jwt.roles.policies`: In the _Vault_ policies section, uncomment the following:
194+
195+
```shell
196+
- name: rhtpa
197+
audience: rhtpa
198+
subject: spiffe://apps.{{ $.Values.global.clusterDomain }}/ns/trusted-profile-analyzer/sa/rhtpa
199+
policies:
200+
- hub-infra-rhtpa-jwt-secret
201+
```
202+
203+
* `applications.qtodo.overrides`: In the _qtodo_ overrides section, specify the following to source content from the Quay registry instance.
204+
205+
```shell
206+
- name: app.images.main.name
207+
value: quay-registry-quay-quay-enterprise.apps.{{ $.Values.global.clusterDomain }}/ztvp/qtodo
208+
- name: app.images.main.version
209+
value: latest
210+
- name: app.images.main.registry.auth
211+
value: true
212+
- name: app.images.main.registry.user
213+
value: quay-admin
214+
- name: app.images.main.registry.passwordVaultKey
215+
value: quay-admin-password
216+
```
217+
39218
## Bring Your Own (BYO) Container Registry
40219

41220
By default, ZTVP deploys a built-in Red Hat Quay registry. However, you can use your own container registry (e.g., quay.io, Docker Hub, GitHub Container Registry, or a private registry) instead.
@@ -213,7 +392,7 @@ resourceHealthChecks:
213392
return hs
214393
```
215394
216-
## Pipeline
395+
## Automated Secure Supply Chain Pipeline
217396
218397
To build and certify the application, we will use _Red Hat OpenShift Pipelines_.
219398
@@ -408,7 +587,7 @@ The credentials to access the Quay web interface can be obtained as follows:
408587
-o jsonpath='{.items[0].spec.host}')"
409588
```
410589
411-
* Quay username: The same one you specified in `values-hub.yaml` or **quay-user**.
590+
* Quay username: The same one you specified in `values-hub.yaml` or **quay-admin**.
412591
* Quay password:
413592
414593
```shell

0 commit comments

Comments
 (0)