Skip to content

[Docs] OSSM with ZTWIM federation #828

Open
Dimss wants to merge 1 commit intoopenshift-service-mesh:ossm-spire-federation-docsfrom
spiffe-run:ossm-spire-federation-docs
Open

[Docs] OSSM with ZTWIM federation #828
Dimss wants to merge 1 commit intoopenshift-service-mesh:ossm-spire-federation-docsfrom
spiffe-run:ossm-spire-federation-docs

Conversation

@Dimss
Copy link
Copy Markdown

@Dimss Dimss commented Apr 27, 2026

Removing duplicates and outdated spire docs
Adding OSSM with ZTWIM for federation setup docs

What type of PR is this?

  • Enhancement / New Feature
  • Bug Fix
  • Refactor
  • Optimization
  • Test
  • Documentation Update

Adding OSSM with ZTWIM for federation setup docs

Signed-off-by: Dmitry Kartsev <dkartsev@redhat.com>
Copy link
Copy Markdown
Collaborator

@fjglira fjglira left a comment

Choose a reason for hiding this comment

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

First pass, all the comment are suggestions to make the documentation easier for users

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

This file lives upstream. Deleting I think is not the rigth approach, if we need to add something OSSM specific it should be in the ossm folder just with the ossm specific information

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

You can leave this one here and create the federation specific in the ossm folder

Comment on lines +790 to +795
Create two OpenShift clusters.
Create a directory `ossm-ztwim-federation`, cd into directory `ossm-ztwim-federation`.
To easily access both clusters,
create two files `cluster-a.kubeconfig`
and `cluster-b.kubeconfig`.
Store the kubeconfig content accordingly
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Suggested change
Create two OpenShift clusters.
Create a directory `ossm-ztwim-federation`, cd into directory `ossm-ztwim-federation`.
To easily access both clusters,
create two files `cluster-a.kubeconfig`
and `cluster-b.kubeconfig`.
Store the kubeconfig content accordingly
* Create two OpenShift clusters.
* Create a directory `ossm-ztwim-federation`, cd into the directory `ossm-ztwim-federation`.
To easily access both clusters, create two files `cluster-a.kubeconfig` and `cluster-b.kubeconfig`.
* Store the kubeconfig content accordingly

Comment on lines +812 to +813
export OSSM_NS=istio-system
export OSSM_CNI=istio-cni
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Suggested change
export OSSM_NS=istio-system
export OSSM_CNI=istio-cni
export OSSM_NS=istio-system
export OSSM_CNI_NS=istio-cni

To keep the same format and be more explicit. This will need to be replaced across the etnire document where the var is used


==== [[fed-install-ztwim-operator]]Install ZTWIM Operator on both clusters

[source,bash]
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I think it is better explained step by step. But if we already have a section in the main document on How to install the operator, you can mentione and redirect people to that section install of adding a bash with a for for this in both cluster. Mention something like: for each cluster, you will need to install the Operator following the steps mentioned here for each one of the clusters


==== [[fed-install-ztwim]]Create `ZeroTrustWorkloadIdentityManager` CR

[source,bash]
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Something similar here, for documentation is better to separate the steps and tell users to: create the CR on cluster A and the command annd another step create the CR on cluster B and the command


==== [[fed-install-spireserver]]Install `SpireServer` CR

[source,bash]
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Same here

done
----

_Note, once the `SpireAgent` deployed we must patch the agent configuration and
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Suggested change
_Note, once the `SpireAgent` deployed we must patch the agent configuration and
_Note, once the `SpireAgent` is deployed, we must patch the agent configuration and


==== [[fed-install-cluster-federation]]Install `ClusterFederatedTrustDomain` CR

[source,bash]
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Similar here, I think each configuration step should be a bullet point install a huge code block with comments


==== [[fed-install-istiod]]Install Istiod

[source,bash]
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Same here, separated bullet will make it easier to go over steps

WORKLOAD_IDENTITY_SOCKET_FILE: "spire-agent.sock"
trustDomain: $ISTIO_TRUST_DOMAIN_NAME
trustDomainAliases:
- $ISTIO_TRUST_DOMAIN_NAME_ALIAS
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Hi @Dimss ,
using trustDomainAliases will make the spire federation work with Istio but was that the main intention of trustDomainAliases field? I believe it was designed for trust domain migration.

Adding federated trust domains in trustDomainAliases would mean:

  1. AuthorizationPolicy cannot distinguish between clusters meaning, any policy allowing one trust domain implicitly allows the other
  2. TLS accepts any identity from any aliased trust domain meaning, inbound connections from aliased domains pass the SAN check

cc: @PillaiManish

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants