Skip to content

Commit 212b79f

Browse files
FilipBlongmuir
andauthored
OSSM-8185: Add docs for Running OSSM 2 and OSSM 3 side by side (openshift-service-mesh#143)
* OSSM-8185: Add docs for Running OSSM 2 and OSSM 3 side by side * Update docs/ossm/ossm-2-and-ossm-3-side-by-side/README.md Co-authored-by: Jamie Longmuir <[email protected]> --------- Co-authored-by: Jamie Longmuir <[email protected]>
1 parent c8c95fc commit 212b79f

File tree

2 files changed

+99
-1
lines changed

2 files changed

+99
-1
lines changed

docs/ossm/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@ This documentation is specific to the OpenShift Service Mesh product and may dif
66

77
# Table of Contents
88

9-
TODO
9+
- [Running Red Hat OpenShift Service Mesh (OSSM) 2 and OSSM 3 side by side](./ossm-2-and-ossm-3-side-by-side/README.md)
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
# Running Red Hat OpenShift Service Mesh (OSSM) 2 and OSSM 3 side by side
2+
This section describes how to run OSSM 2 and OSSM 3 side by side in one cluster without interfering with each other.
3+
> **_NOTE:_** It's not OSSM 2 -> OSSM 3 migration guide.
4+
5+
To better understand the steps described here, it's recommended to read the OSSM 2 [deployment models](https://docs.redhat.com/en/documentation/openshift_container_platform/4.17/html/service_mesh/service-mesh-2-x#ossm-deployment-models) and upstream Istio [Multiple Control Planes](https://istio.io/latest/docs/setup/install/multiple-controlplanes/) documentation. This document assumes OSSM 2.6 is already running and the goal is to install OSSM 3.0 on the same cluster without interfering with the OSSM 2.6 installation.
6+
7+
Follow the steps described below for your OSSM 2 deployment model (Multi-tenant or Cluster-Wide).
8+
9+
## Multitenant (default) deployment model
10+
There are no changes required on OSSM 2 side. For OSSM 3 installation, see [OSSM 3 installation](#ossm-3-installation) below.
11+
12+
## Cluster-Wide (Single Tenant) mesh deployment model
13+
### Required OSSM 2 changes for Cluster-Wide model
14+
To be able to run OSSM 2 in cluster-wide mode with OSSM 3, it's required to make configuration changes on OSSM 2 side as well.
15+
As the control plane with the cluster-wide model watches all namespaces, it's required to restrict that to namespaces only belonging to the OSSM 2 mesh. Otherwise it would conflict with OSSM 3. Restricting your control plane can be done either with [discovery selectors](https://docs.redhat.com/en/documentation/openshift_container_platform/4.17/html/service_mesh/service-mesh-2-x#ossm-excluding-namespaces-from-cluster-wide-mesh-console_ossm-deployment-models) or by switching to a multi-tenant deployment model.
16+
1. configure discovery selectors in your SMCP CR:
17+
```yaml
18+
apiVersion: maistra.io/v2
19+
kind: ServiceMeshControlPlane
20+
metadata:
21+
name: basic
22+
namespace: istio-system
23+
spec:
24+
policy:
25+
type: Istiod
26+
addons:
27+
grafana:
28+
enabled: false
29+
kiali:
30+
enabled: true
31+
prometheus:
32+
enabled: true
33+
telemetry:
34+
type: Istiod
35+
version: v2.6
36+
mode: ClusterWide
37+
meshConfig:
38+
discoverySelectors:
39+
- matchExpressions:
40+
- key: maistra.io/member-of
41+
operator: Exists
42+
runtime:
43+
components:
44+
pilot:
45+
container:
46+
env:
47+
ENABLE_ENHANCED_RESOURCE_SCOPING: 'true'
48+
```
49+
50+
### OSSM 3 installation
51+
See OSSM [installation](https://docs.openshift.com/service-mesh/3.0.0tp1/install/ossm-installing-openshift-service-mesh.html) documentation for more information.
52+
1. install `Red Hat OpenShift Service Mesh 3` operator
53+
1. create `IstioCNI` resource in `istio-cni` namespace
54+
1. create following `Istio` resource in `istio-system3` (must be a different namespace than a namespace running OSSM 2). Make sure to use discovery selectors which are ignoring OSSM 2 namespaces and NOT to use `default` name for `Istio` resource. You can optionally restrict discovered namespaces even more. Configuration shown in the example only ignores OSSM 2 namespaces but all other namespaces will be part of OSSM 3 mesh. See upstream Istio documentation for [discoverySelectors](https://istio.io/v1.19/docs/setup/install/multiple-controlplanes/) usage.
55+
```yaml
56+
kind: Istio
57+
apiVersion: sailoperator.io/v1alpha1
58+
metadata:
59+
name: ossm3
60+
spec:
61+
namespace: istio-system3
62+
values:
63+
meshConfig:
64+
discoverySelectors:
65+
- matchExpressions:
66+
- key: maistra.io/member-of
67+
operator: DoesNotExist
68+
updateStrategy:
69+
type: InPlace
70+
version: v1.23.0
71+
```
72+
1. Deploy your workloads and label the namespaces with `istio.io/rev=ossm3` label
73+
> **_NOTE:_** Do NOT use `istio-injection=enabled` label for your OSSM 3 workload namespaces unless you have changed `spec.memberSelectors` in `ServiceMeshMemberRoll`.
74+
1. You can use the `istioctl ps` command to confirm that the application workloads are managed by their respective control plane:
75+
```sh
76+
$ istioctl ps -i istio-system
77+
NAME CLUSTER CDS LDS EDS RDS ECDS ISTIOD VERSION
78+
details-v1-7f46897b-88x4l.bookinfo Kubernetes SYNCED SYNCED SYNCED SYNCED NOT SENT istiod-install-istio-system-bd58bdcd5-2htkf 1.20.8
79+
mongodb-v1-6cf7dc9885-7nlmq.bookinfo Kubernetes SYNCED SYNCED SYNCED SYNCED NOT SENT istiod-install-istio-system-bd58bdcd5-2htkf 1.20.8
80+
mysqldb-v1-7c4c44b9b4-22b57.bookinfo Kubernetes SYNCED SYNCED SYNCED SYNCED NOT SENT istiod-install-istio-system-bd58bdcd5-2htkf 1.20.8
81+
productpage-v1-6f9c6589cb-l6rvg.bookinfo Kubernetes SYNCED SYNCED SYNCED SYNCED NOT SENT istiod-install-istio-system-bd58bdcd5-2htkf 1.20.8
82+
ratings-v1-559b64556-f6b4l.bookinfo Kubernetes SYNCED SYNCED SYNCED SYNCED NOT SENT istiod-install-istio-system-bd58bdcd5-2htkf 1.20.8
83+
ratings-v2-8ddc4d65c-bztrg.bookinfo Kubernetes SYNCED SYNCED SYNCED SYNCED NOT SENT istiod-install-istio-system-bd58bdcd5-2htkf 1.20.8
84+
ratings-v2-mysql-cbc957476-m5j7w.bookinfo Kubernetes SYNCED SYNCED SYNCED SYNCED NOT SENT istiod-install-istio-system-bd58bdcd5-2htkf 1.20.8
85+
reviews-v1-847fb7c54d-7dwt7.bookinfo Kubernetes SYNCED SYNCED SYNCED SYNCED NOT SENT istiod-install-istio-system-bd58bdcd5-2htkf 1.20.8
86+
reviews-v2-5c7ff5b77b-5bpc4.bookinfo Kubernetes SYNCED SYNCED SYNCED SYNCED NOT SENT istiod-install-istio-system-bd58bdcd5-2htkf 1.20.8
87+
reviews-v3-5c5d764c9b-mk8vn.bookinfo Kubernetes SYNCED SYNCED SYNCED SYNCED NOT SENT istiod-install-istio-system-bd58bdcd5-2htkf 1.20.8
88+
```
89+
```sh
90+
$ istioctl ps -i istio-system3
91+
NAME CLUSTER CDS LDS EDS RDS ECDS ISTIOD VERSION
92+
details-v1-57f6466bdc-5krth.bookinfo2 Kubernetes SYNCED (2m40s) SYNCED (2m40s) SYNCED (2m34s) SYNCED (2m40s) IGNORED istiod-ossm3-5b46b6b8cb-gbjx6 1.23.0
93+
productpage-v1-5b84ccdddf-f8d9t.bookinfo2 Kubernetes SYNCED (2m39s) SYNCED (2m39s) SYNCED (2m34s) SYNCED (2m39s) IGNORED istiod-ossm3-5b46b6b8cb-gbjx6 1.23.0
94+
ratings-v1-fb764cb99-kx2dr.bookinfo2 Kubernetes SYNCED (2m40s) SYNCED (2m40s) SYNCED (2m34s) SYNCED (2m40s) IGNORED istiod-ossm3-5b46b6b8cb-gbjx6 1.23.0
95+
reviews-v1-8bd5549cf-xqqmd.bookinfo2 Kubernetes SYNCED (2m40s) SYNCED (2m40s) SYNCED (2m34s) SYNCED (2m40s) IGNORED istiod-ossm3-5b46b6b8cb-gbjx6 1.23.0
96+
reviews-v2-7f7cc8bf5c-5rvln.bookinfo2 Kubernetes SYNCED (2m40s) SYNCED (2m40s) SYNCED (2m34s) SYNCED (2m40s) IGNORED istiod-ossm3-5b46b6b8cb-gbjx6 1.23.0
97+
reviews-v3-84f674b88c-ftcqg.bookinfo2 Kubernetes SYNCED (2m40s) SYNCED (2m40s) SYNCED (2m34s) SYNCED (2m40s) IGNORED istiod-ossm3-5b46b6b8cb-gbjx6 1.23.0
98+
```

0 commit comments

Comments
 (0)