Skip to content

Conversation

@sayan-biswas
Copy link

Proposal to add a Shipwright feature to use trusted certificates in Build steps.

Changes

Submitter Checklist

  • Includes tests if functionality changed/was added
  • Includes docs if changes are user-facing
  • Set a kind label on this PR
  • Release notes block has been filled in, or marked NONE

See the contributor guide
for details on coding conventions, github and prow interactions, and the code review process.

Release Notes

Proposal to add a Shipwright feature to use trusted certificates in Build steps.

Signed-off-by: Sayan Biswas <[email protected]>
@openshift-ci openshift-ci bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Nov 11, 2025
@pull-request-size pull-request-size bot added the size/L Denotes a PR that changes 100-499 lines, ignoring generated files. label Nov 11, 2025
@openshift-ci
Copy link

openshift-ci bot commented Nov 11, 2025

[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 adambkaplan for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Copy link
Member

@adambkaplan adambkaplan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Initial comments since this proposal is in the draft state. I'd like to see the scope of this proposal more clearly defined before accepting it in the "provisional" state.

@@ -0,0 +1,121 @@
# Trusted Certificates
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please restore the YAML metadata at the top of the template. We use this to track the lifecycle of the proposal.

Comment on lines +61 to +65
- name: custom-cert-1
secretName: ca-cert-1
mountPath: /etc/ssl/cert # This is optional and will default to configuration from system parameter (see below)
- name: custom-cert-2
secretName: ca-cert-2
Copy link
Member

@adambkaplan adambkaplan Nov 18, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We will need to handle multiple types of objects for certificate data:

  • ConfigMap - TLS certificate authorities are often distributed as ConfigMaps, as this information is intended to be public. This is perhaps the most common use case for this feature when it comes to accessing content in private Git repositories and image registries. Trust Manager defaults to distributing CAs bundles with a ConfigMap. I would prioritize ConfigMap support for this feature over Secrets.
  • Kubernetes has a new feature, ClusterTrustBundles, which graduated to beta in v1.33 but is disabled by default. These trust bundles can be mounted into pods using a new projected volume type. We should consider adding support for this once v1.33 becomes our minimum supported version.

The default path where the certificates will be mounted is defined in the system parameter API of the build strategy.
https://shipwright.io/docs/build/buildstrategies/#system-parameters

params.shp-certificate-directory
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What value is the default? Let's be explicit here.

# ...
spec:
# ...
certificates:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like that we are supporting multiple certificates - this enables more fine grained distribution of trust.

I am concerned that the naming "certificates" is too broad. Are we concerned with certificate authorities for TLS verficiation? X.509 certificates for workload identity? Mutual TLS certificates between services? These are all very different things that utilize similar underlying fundamental technologies.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

2 participants