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: docs/config/ca-certificate-bundle-for-imagestream-backups.md
+70-23Lines changed: 70 additions & 23 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -88,7 +88,26 @@ OADP/Velero supports CA certificates through **two independent mechanisms**:
88
88
|**ImageStream backups**| ✅ Works (requires `AWS_CA_BUNDLE`) | ❌ Fails with custom CAs |
89
89
|**Velero BSL validation**| Uses `AWS_CA_BUNDLE` (overrides BSL `caCert`) via velero-plugin-for-aws | Uses BSL `caCert` via velero-plugin-for-aws |
90
90
91
-
**Why both mechanisms exist**: The BSL `caCert` field is passed by Velero to plugins, but docker-distribution S3 driver operates in openshift-velero-plugin context and can only read from `AWS_CA_BUNDLE` environment variable pointing to a mounted file. When `AWS_CA_BUNDLE` is set, the AWS SDK reads it at session creation and overrides any BSL `caCert` configuration for all AWS SDK operations (including BSL validation via velero-plugin-for-aws).
91
+
**Why both mechanisms exist**:
92
+
93
+
The BSL `caCert` field is a **Velero BackupStorageLocation spec field**, but it's not an **S3 storage driver parameter**. Here's the critical distinction:
94
+
95
+
-**Velero BSL spec**: Contains fields like `caCert`, `bucket`, `region`, etc.
96
+
-**S3 driver parameters**: The subset of configuration passed to the S3 storage driver (bucket, credentials, region, endpoint)
97
+
-**S3 driver does NOT have a `caCert` parameter** - it has no way to receive CA certificates via configuration
98
+
99
+
When openshift-velero-plugin calls the docker-distribution S3 driver:
100
+
1. It passes S3 driver parameters (bucket, region, credentials) extracted from BSL
101
+
2. The S3 driver creates an AWS SDK session using these parameters
102
+
3. The AWS SDK reads `AWS_CA_BUNDLE` from the **process environment** (not from driver parameters)
103
+
4. There's no path to pass BSL `caCert` to the S3 driver - it must come from environment
104
+
105
+
When `AWS_CA_BUNDLE` is set in the Velero pod environment, the AWS SDK reads it at session creation and uses it for **all** AWS SDK operations, including:
0 commit comments