feat(launcher): Add configurable CA bundle environment variables to launcher v2
What this PR does / why we need it
This PR introduces support for configuring which CA-related environment variables the v2 launcher sets when a user provides a custom CA bundle path.
Currently, launcher_v2 unconditionally sets:
- REQUESTS_CA_BUNDLE
- AWS_CA_BUNDLE
- SSL_CERT_FILE
whenever CaCertPath is provided. This behavior is too strict for some environments that want finer control—e.g., cloud-specific setups, distroless containers, or Python environments that expect only a subset of these variables.
This feature allows users to configure exactly which environment variables should be set.
Which issue(s) this PR fixes
Fixes #12329
Description of changes
- Added new field to LauncherV2Options:
CACertEnvVars []string
Users may now specify which CA-related environment variables should be set.
- Added full plumbing of the new option through the launcher stack
Including:
- NewLauncherV2
- LauncherV2.Execute
- executeV2
- execute
- Updated default behavior
If CACertEnvVars is nil or empty, the launcher preserves legacy behavior and sets the original 3 environment variables:
REQUESTS_CA_BUNDLE
AWS_CA_BUNDLE
SSL_CERT_FILE
This ensures full backward compatibility.
- Updated unit tests
All calls to executeV2 now include the new argument, and tests verify that launcher execution behavior continues to work as expected.
No changes were made to end-to-end or integration tests.
Testing done
- Added/updated unit tests in
launcher_v2_test.go - Verified all backend unit tests pass:
cd backend
go test ./...
- Verified the component module tests pass:
ok github.com/kubeflow/pipelines/backend/src/v2/component
End-to-end and API integration tests expectedly fail locally due to requiring a real Kubernetes cluster; this is normal and identical to upstream contributor experience.
Backward compatibility
Fully backward compatible.
- If users do not specify
CACertEnvVars, the launcher behaves exactly as before. - No existing workflows break.
- No user APIs changed.
Documentation
A short follow-up PR will update the docs in docs/backend/tls explaining how to configure CA env vars via LauncherV2Options.
[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: Once this PR has been reviewed and has the lgtm label, please assign rimolive for approval. For more information see the Kubernetes Code Review Process.
The full list of commands accepted by this bot can be found here.
Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment
Hi @rahul810050. Thanks for your PR.
I'm waiting for a kubeflow member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.
Once the patch is verified, the new status will be reflected by the ok-to-test label.
I understand the commands that are listed here.
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.
Hii @VaniHaripriya @droctothorpe could you please review it whenever you get a chance??