Skip to content

Conversation

@wgabor0427
Copy link
Contributor

@wgabor0427 wgabor0427 commented Jul 28, 2025

Version(s):
4.19+

Issue:

Link to docs preview:
https://96769--ocpdocs-pr.netlify.app/openshift-enterprise/latest/security/zero_trust_workload_identity_manager/zero-trust-manager-upstream-authority.html

QE review:

  • QE has approved this change.

Additional information:

@openshift-ci openshift-ci bot added the size/S Denotes a PR that changes 10-29 lines, ignoring generated files. label Jul 28, 2025
@ocpdocs-previewbot
Copy link

ocpdocs-previewbot commented Jul 28, 2025

@wgabor0427 wgabor0427 force-pushed the OSDOCS-15575 branch 3 times, most recently from a2b2407 to 0ee8d81 Compare July 29, 2025 13:21
@wgabor0427
Copy link
Contributor Author

/label merge-review-needed

@openshift-ci openshift-ci bot added the merge-review-needed Signifies that the merge review team needs to review this PR label Jul 29, 2025
@lahinson lahinson added merge-review-in-progress Signifies that the merge review team is reviewing this PR branch/enterprise-4.19 branch/enterprise-4.20 and removed merge-review-needed Signifies that the merge review team needs to review this PR merge-review-in-progress Signifies that the merge review team is reviewing this PR labels Jul 29, 2025
@lahinson lahinson added this to the Continuous Release milestone Jul 29, 2025
@lahinson
Copy link
Contributor

Hi @wgabor0427 - Please make sure that QE has approved your PR before you submit it for merge review. Thanks!

@lunarwhite
Copy link
Member

/lgtm

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Aug 1, 2025
@openshift-ci openshift-ci bot added size/L Denotes a PR that changes 100-499 lines, ignoring generated files. and removed lgtm Indicates that a PR is ready to be merged. size/S Denotes a PR that changes 10-29 lines, ignoring generated files. labels Aug 7, 2025
@wgabor0427 wgabor0427 changed the title OSDOCS-15575 added a new assembly and updated topic map [WIP] OSDOCS-15575 added a new assembly and updated topic map Aug 8, 2025
@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 Aug 8, 2025
@wgabor0427 wgabor0427 force-pushed the OSDOCS-15575 branch 2 times, most recently from 09cea55 to dd903e3 Compare August 13, 2025 13:15
@wgabor0427 wgabor0427 force-pushed the OSDOCS-15575 branch 2 times, most recently from 58e16f9 to 176910b Compare August 18, 2025 17:50
@wgabor0427 wgabor0427 changed the title [WIP] OSDOCS-15575 added a new assembly and updated topic map OSDOCS-15575 added a new assembly and updated topic map Aug 18, 2025
@wgabor0427 wgabor0427 force-pushed the OSDOCS-15575 branch 6 times, most recently from 9226aef to b6d420a Compare August 20, 2025 15:13
Copy link

@sabre1041 sabre1041 left a comment

Choose a reason for hiding this comment

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

Good content. Requested a number of improvements

<2> Set to `ClusterIssuer` if issuer is cluster-scoped. The default is `Issuer`.
<3> The API group of the issuer. The default is `cert-manager.io`.
<4> The namespace where the `CertificateRequest` is created. The default is `zero-trust-workload-identity-manager`.
<5> The name of a Secret containing the `kubeconfig` to connect to the clsuter where `cert-manager` is running. If empy, an in-cluster configuration is used.

Choose a reason for hiding this comment

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

Suggested change
<5> The name of a Secret containing the `kubeconfig` to connect to the clsuter where `cert-manager` is running. If empy, an in-cluster configuration is used.
<5> The name of a Secret containing the `kubeconfig` to connect to the cluster where `cert-manager` is running. If empty, an in-cluster configuration is used.

$ oc get certificaterequests -n <namespace>
----

. Run the following command ot inspect a specific `CertificateRequest`. Review the `Status` section to confirm the certificate has been signed and that the certificate data is present.

Choose a reason for hiding this comment

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

Suggested change
. Run the following command ot inspect a specific `CertificateRequest`. Review the `Status` section to confirm the certificate has been signed and that the certificate data is present.
. Run the following command to inspect a specific `CertificateRequest`. Review the `Status` section to confirm the certificate has been signed and that the certificate data is present.


The cert-manager plugin enables the SPIRE server to dynamically request and receive intermediate signing certificates from cert-manager. The plugin automates the management of the SPIRE server intermediate signing certificates by integrating with cert-manager.

When a SPIRE server needs a new certificate, the cert-manager plugin creates a `CertificateRequest` custom resource in the configured Kubernetes namespace. The namespace has the Certificate Signing Request (CSR) generated by the SPIRE server. The cert-manager plugin processes the `CertificateRequest` and an associated `Issuer` signs the CSR. The signed intermediate certificate and the full Certificate Authority (CA) bundle are available in the `CertificateRequest` status. These signed credentials are available to the SPIRE server and used as its upstream signing authority. No newline at end of file

Choose a reason for hiding this comment

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

Should OpenShift be used instead of Kubernetes?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I think that's a good idea


The cert-manager plugin enables the SPIRE server to dynamically request and receive intermediate signing certificates from cert-manager. The plugin automates the management of the SPIRE server intermediate signing certificates by integrating with cert-manager.

When a SPIRE server needs a new certificate, the cert-manager plugin creates a `CertificateRequest` custom resource in the configured Kubernetes namespace. The namespace has the Certificate Signing Request (CSR) generated by the SPIRE server. The cert-manager plugin processes the `CertificateRequest` and an associated `Issuer` signs the CSR. The signed intermediate certificate and the full Certificate Authority (CA) bundle are available in the `CertificateRequest` status. These signed credentials are available to the SPIRE server and used as its upstream signing authority. No newline at end of file

Choose a reason for hiding this comment

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

Suggested change
When a SPIRE server needs a new certificate, the cert-manager plugin creates a `CertificateRequest` custom resource in the configured Kubernetes namespace. The namespace has the Certificate Signing Request (CSR) generated by the SPIRE server. The cert-manager plugin processes the `CertificateRequest` and an associated `Issuer` signs the CSR. The signed intermediate certificate and the full Certificate Authority (CA) bundle are available in the `CertificateRequest` status. These signed credentials are available to the SPIRE server and used as its upstream signing authority.
When a SPIRE server needs a new certificate, the cert-manager plugin creates a `CertificateRequest` custom resource in the configured Kubernetes namespace. The namespace includes the Certificate Signing Request (CSR) generated by the SPIRE server. The cert-manager plugin processes the `CertificateRequest` and an associated `Issuer` signs the CSR. The signed intermediate certificate and the full Certificate Authority (CA) bundle are available in the `CertificateRequest` status. These signed credentials are available to the SPIRE server and used as its upstream signing authority.


.Prerequisites

* Access to a Kubernetes cluster where the SPIRE server runs.

Choose a reason for hiding this comment

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

Suggested change
* Access to a Kubernetes cluster where the SPIRE server runs.
* Access to a OpenShift cluster where the SPIRE server runs.

<3> Name of the Kubernetes secret containing the client private key in PEM format.
<4> The name of the Vault role to authenticate against.

.. Configure the `tokenAuth` authentication in the `UpstreamAuthority` section of the `spireserver.yaml` file. This method uses a static Vault token.

Choose a reason for hiding this comment

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

Suggested change
.. Configure the `tokenAuth` authentication in the `UpstreamAuthority` section of the `spireserver.yaml` file. This method uses a static Vault token.
.. Configure the `tokenAuth` authentication in the `upstreamAuthority` section of the `spireserver.yaml` file. This method uses a static Vault token.

<2> The `AppRole` ID used for authentication.
<3> the `AppRole` SecretID used for authentication.

. Configure the `k8sAuth` authentication in the `UpstreamAuthority` section of the `spireserver.yaml` file. This method uses a Kubernetes ServiceAccount token for authentication.

Choose a reason for hiding this comment

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

Suggested change
. Configure the `k8sAuth` authentication in the `UpstreamAuthority` section of the `spireserver.yaml` file. This method uses a Kubernetes ServiceAccount token for authentication.
. Configure the `k8sAuth` authentication in the `upstreamAuthority` section of the `spireserver.yaml` file. This method uses a Kubernetes ServiceAccount token for authentication.

<4> The name used for the Mutual Transport Layer Security (mTLS) authentication with the Vault server.

. Configure one of the authentication methods:
.. Configure the `certAuth` authentication in the `UpstreamAuthority` section of the `spireserver.yaml` file. This method uses a client certificate and private key for authentication.

Choose a reason for hiding this comment

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

Suggested change
.. Configure the `certAuth` authentication in the `UpstreamAuthority` section of the `spireserver.yaml` file. This method uses a client certificate and private key for authentication.
.. Configure the `certAuth` authentication in the `upstreamAuthority` section of the `spireserver.yaml` file. This method uses a client certificate and private key for authentication.

@@ -0,0 +1,140 @@
// Module included in the following assemblies:
//
// * security/zero_trust_workload_identity_manager/zero-trust-manager.adoc

Choose a reason for hiding this comment

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

There are a lot of assumptions that the Vault server has been configured a certain way. Is there any other guidance that we will be providing for our customers?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I do not know that. Yuedong would have to confirm

:FeatureName: Zero Trust Workload Identity Manager
include::snippets/technology-preview.adoc[]

Upstream authority plugins are components that allow the SPIRE server to integrate with an existing Public Key Infrastructure (PKI) to obtain intermediate signing certificates. The SPIRE server then uses these intermediate certificates to cryptographically sign the {svid-full} that it issues to workloads. The plugins also allow the SPIRE server to use a pre-existing root of trust, rather than establishing a new, isolated one.

Choose a reason for hiding this comment

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

Suggested change
Upstream authority plugins are components that allow the SPIRE server to integrate with an existing Public Key Infrastructure (PKI) to obtain intermediate signing certificates. The SPIRE server then uses these intermediate certificates to cryptographically sign the {svid-full} that it issues to workloads. The plugins also allow the SPIRE server to use a pre-existing root of trust, rather than establishing a new, isolated one.
Upstream authority plugins are components that allow the SPIRE server to integrate with an existing Public Key Infrastructure (PKI) to obtain intermediate signing certificates. The SPIRE server then uses these intermediate certificates to cryptographically sign the {svid-full} that it issues to workloads. The plugins also allow the SPIRE server to use a pre-existing root of trust, rather than establishing a new, isolated root of trust.

@wgabor0427 wgabor0427 force-pushed the OSDOCS-15575 branch 4 times, most recently from 36ee519 to 7125277 Compare August 21, 2025 20:33
@wgabor0427 wgabor0427 force-pushed the OSDOCS-15575 branch 2 times, most recently from 2a0b127 to 892f2e1 Compare September 7, 2025 16:37
@wgabor0427 wgabor0427 changed the title OSDOCS-15575 added a new assembly and updated topic map [WIP] OSDOCS-15575 added a new assembly and updated topic map Sep 8, 2025
@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 Sep 8, 2025
@bergerhoffer
Copy link
Contributor

The branch/enterprise-4.21 label has been added to this PR.

This is because your PR targets the main branch and is labeled for enterprise-4.20. And any PR going into main must also target the latest version branch (enterprise-4.21).

If the update in your PR does NOT apply to version 4.21 onward, please re-target this PR to go directly into the appropriate version branch or branches (enterprise-4.x) instead of main.

@openshift-merge-robot openshift-merge-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Oct 20, 2025
@openshift-merge-robot openshift-merge-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Oct 20, 2025
@wgabor0427 wgabor0427 requested a review from sabre1041 October 21, 2025 12:01
@wgabor0427
Copy link
Contributor Author

/retest

@openshift-ci
Copy link

openshift-ci bot commented Oct 21, 2025

@wgabor0427: all tests passed!

Full PR test history. Your PR dashboard.

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-sigs/prow repository. I understand the commands that are listed here.

@sabre1041
Copy link

/lgtm

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Oct 21, 2025
@wgabor0427
Copy link
Contributor Author

/retest

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

Labels

branch/enterprise-4.19 branch/enterprise-4.20 branch/enterprise-4.21 do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. lgtm Indicates that a PR is ready to be merged. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants