Skip to content

OADP-641: Update OpenShift docker-distribution dependency to enable AWS_CA_BUNDLE support for self-signed certificates #139

@kaovilai

Description

@kaovilai

Issue Summary

The current udistribution dependency on OpenShift docker-distribution needs to be updated to include AWS_CA_BUNDLE support for self-signed certificates, which is required for OADP internal image backup functionality.

Background

OADP issue OADP-641 has been blocked for 2+ years due to x509 certificate errors when using self-signed certificates with internal image backups. Investigation shows the solution is now available but requires dependency updates.

Current Status

OpenShift docker-distribution fork now has AWS_CA_BUNDLE support through:

Dependency Chain

OADP → openshift-velero-plugin → udistribution → openshift/docker-distribution

Current go.mod in udistribution

replace github.com/distribution/distribution/v3 => github.com/openshift/docker-distribution/v3 v3.0.0-20250120104846-a24972526437

Required Action

Update the udistribution dependency to use a version of openshift/docker-distribution that includes PR #44 (merged commit: 21eefccb821fbc4b34d33da5a4b07b4ed3b964e5).

Expected Outcome

After updating the dependency, udistribution will support:

  1. AWS_CA_BUNDLE environment variable for custom CA certificates
  2. Proxy support with proper transport cloning
  3. Self-signed certificate compatibility for S3-compatible storage

Implementation

The AWS SDK will automatically respect the AWS_CA_BUNDLE environment variable when set, allowing users to specify custom CA certificates for S3 operations without code changes.

Testing

Once updated, this should resolve certificate validation issues when:

  • Using S3-compatible storage with self-signed certificates
  • Setting AWS_CA_BUNDLE=/path/to/ca-bundle.pem
  • Using internal registries with custom CA certificates

Related Issues

This update will unblock OADP's ability to support self-signed certificates for internal image backups that has been requested for over 2 years.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions