You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CLAUDE.md
+80Lines changed: 80 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -158,6 +158,86 @@ The TrustedProfileAnalyzer CR spec uses `x-kubernetes-preserve-unknown-fields: t
158
158
-`metrics.enabled`: Enable metrics collection
159
159
-`tracing.enabled`: Enable distributed tracing
160
160
161
+
## Cloud Credential Operator (CCO) Integration
162
+
163
+
The operator supports OpenShift Cloud Credential Operator integration for automatic cloud credential provisioning. CCO eliminates the need to manually create and manage S3 access keys by delegating credential lifecycle to the platform.
164
+
165
+
### Enabling CCO
166
+
167
+
Set `cloudProvider` in the CR spec. This is the master toggle — when absent, no CCO resources are created and credentials must be supplied manually via `storage.accessKey`/`storage.secretKey`.
168
+
169
+
```yaml
170
+
spec:
171
+
cloudProvider: aws # "aws" or "gcp"
172
+
ccoMode: mint # optional: "default", "mint", "passthrough", or "manual"
| `helm-charts/.../templates/credentialrequest.yaml` | CredentialsRequest template (conditional on `cloudProvider`) |
230
+
| `helm-charts/.../templates/helpers/_cco.tpl` | Helper templates for manual mode volumes/mounts/env vars |
231
+
| `helm-charts/.../templates/helpers/_storage.tpl` | S3 env vars — branches on CCO vs manual credentials |
232
+
| `config/rbac/clusterrole.yaml` | ClusterRole granting access to `credentialsrequests` API |
233
+
| `config/rbac/clusterrolebinding_cco.yaml` | Binds the CCO ClusterRole to the operator ServiceAccount |
234
+
| `test/fixtures/aws_cco_*.yaml` | Example CRs for each CCO mode |
235
+
| `test/e2e/cco_helm_rendering_test.go` | E2E tests for CCO template rendering |
236
+
237
+
### RBAC
238
+
239
+
The operator requires a ClusterRole with permissions on `cloudcredential.openshift.io/credentialsrequests` (create, delete, get, list, patch, update, watch). This is configured in `config/rbac/clusterrole.yaml` and bound via `config/rbac/clusterrolebinding_cco.yaml`.
240
+
161
241
## Linting
162
242
163
243
The project uses golangci-lint with configuration in `.golangci.yml`. Enabled linters include:
0 commit comments