Skip to content

Commit 121bb0a

Browse files
committed
rearrange installation instructions
1 parent 303c4c4 commit 121bb0a

File tree

1 file changed

+73
-80
lines changed

1 file changed

+73
-80
lines changed

articles/azure-arc/kubernetes/tutorial-arc-enabled-open-service-mesh.md

Lines changed: 73 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ OSM runs an Envoy-based control plane on Kubernetes, can be configured with [SMI
2727
- Rancher Kubernetes Engine
2828
- OpenShift Kubernetes Distribution
2929
- Amazon Elastic Kubernetes Service
30+
- VMware Tanzu Kubernetes Grid
3031
- Azure Monitor integration with Azure Arc-enabled Open Service Mesh is available with [limited support](https://github.com/microsoft/Docker-Provider/blob/ci_dev/Documentation/OSMPrivatePreview/ReadMe.md).
3132

3233
[!INCLUDE [preview features note](./includes/preview/preview-callout.md)]
@@ -38,11 +39,9 @@ OSM runs an Envoy-based control plane on Kubernetes, can be configured with [SMI
3839

3940
## Install Azure Arc-enabled Open Service Mesh (OSM) on an Azure Arc-enabled Kubernetes cluster
4041

42+
## Basic Installation of Open Service Mesh (OSM) on an Azure Arc-enabled Kubernetes Cluster
4143
The following steps assume that you already have a cluster with supported Kubernetes distribution connected to Azure Arc.
42-
43-
### Install a specific version of OSM
44-
45-
Ensure that your KUBECONFIG environment variable points to the kubeconfig of the Kubernetes cluster where you want the OSM extension installed.
44+
Ensure that your KUBECONFIG environment variable points to the kubeconfig of the Arc-enabled Kubernetes cluster.
4645

4746
Set the environment variables:
4847

@@ -52,7 +51,7 @@ export CLUSTER_NAME=<arc-cluster-name>
5251
export RESOURCE_GROUP=<resource-group-name>
5352
```
5453

55-
While Azure Arc-enabled Open Service Mesh is in preview, the `az k8s-extension create` command only accepts `pilot` for the `--release-train` flag. `--auto-upgrade-minor-version` is always set to `false` and a version must be provided. If you have an OpenShift cluster, use the steps in the [section](#install-a-specific-version-of-osm-on-openshift-cluster).
54+
While Azure Arc-enabled Open Service Mesh is in preview, the `az k8s-extension create` command only accepts `pilot` for the `--release-train` flag. `--auto-upgrade-minor-version` is always set to `false` and a version must be provided. If you are using an OpenShift cluster, use the steps in the [section](#install-a-specific-version-of-osm-on-openshift-cluster).
5655

5756
```azurecli-interactive
5857
az k8s-extension create --cluster-name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --cluster-type connectedClusters --extension-type Microsoft.openservicemesh --scope cluster --release-train pilot --name osm --version $VERSION
@@ -91,7 +90,26 @@ You should see output similar to the output shown below. It may take 3-5 minutes
9190
}
9291
```
9392

94-
### Install a specific version of OSM on OpenShift cluster
93+
## Installation with Custom Configurations
94+
The following sections describe how to further configure OSM during installation.
95+
96+
To set custom configurations of OSM, custom values must be passed in during installation.
97+
This requires creating a JSON file containing custom settings and then passing them into `k8s-extension create` CLI command.
98+
99+
See sections below to determine the contents of the JSON file you require.
100+
101+
Then, set the file path as an environment variable:
102+
```azurecli-interactive
103+
export SETTINGS_FILE=<json-file-path>
104+
```
105+
106+
Finally, run the `az k8s-extension create` command to
107+
create the OSM extension, passing in the settings file using the `--configuration-settings` flag:
108+
```azurecli-interactive
109+
az k8s-extension create --cluster-name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --cluster-type connectedClusters --extension-type Microsoft.openservicemesh --scope cluster --release-train pilot --name osm --version $VERSION --configuration-settings-file $SETTINGS_FILE
110+
```
111+
112+
### Install OSM on an OpenShift cluster
95113

96114
1. Copy and save the following contents into a JSON file. If you have already created a configuration settings file, please add the following line to the existing file to preserve your previous changes.
97115
```json
@@ -100,15 +118,8 @@ You should see output similar to the output shown below. It may take 3-5 minutes
100118
}
101119
```
102120

103-
Set the file path as an environment variable:
104-
```azurecli-interactive
105-
export SETTINGS_FILE=<json-file-path>
106-
```
107121

108-
2. Run the `az k8s-extension create` command used to create the OSM extension, and pass in the settings file using configuration settings:
109-
```azurecli-interactive
110-
az k8s-extension create --cluster-name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --cluster-type connectedClusters --extension-type Microsoft.openservicemesh --scope cluster --release-train pilot --name osm --version $VERSION --configuration-settings-file $SETTINGS_FILE
111-
```
122+
2. Install OSM with custom values.
112123

113124
3. Add the privileged [security context constraint](https://docs.openshift.com/container-platform/4.7/authentication/managing-security-context-constraints.html) to each service account for the applications in the mesh.
114125
```azurecli-interactive
@@ -119,6 +130,50 @@ It may take 3-5 minutes for the actual OSM helm chart to get deployed to the clu
119130

120131
To ensure that the privileged init container setting is not reverted to the default, pass in the "osm.OpenServiceMesh.enablePrivilegedInitContainer" : "true" configuration setting to all subsequent az k8s-extension create commands.
121132

133+
### Install OSM with cert-manager for Certificate Management
134+
[cert-manager](https://cert-manager.io/) is a provider that can be used for issuing signed certificates to OSM without
135+
the need for storing private keys in Kubernetes. Refer to OSM's [cert-manager documentation](https://release-v0-11.docs.openservicemesh.io/docs/guides/certificates/)
136+
and [demo](https://docs.openservicemesh.io/docs/demos/cert-manager_integration/) to learn more. Values to configure cert-manager must be passed in during OSM installation using the Azure CLI.
137+
138+
> [!NOTE]
139+
> Use the commands provided in the OSM GitHub documentation with caution. Ensure that you use the correct namespace name `arc-osm-system`.
140+
141+
To set cert-manager as the certificate provider, create a JSON file with the following `certificateProvider.kind` value.
142+
Include and update the subsequent `certmanager.issuer` lines if you would like to change from default values specified in OSM documentation.
143+
144+
```json
145+
{
146+
"osm.osm.certificateProvider.kind" : "cert-manager",
147+
"osm.osm.certmanager.issuerName" : "<issuer name>",
148+
"osm.osm.certmanager.issuerKind" : "<issuer kind>",
149+
"osm.osm.certmanager.issuerGroup" : "<issuer group>"
150+
}
151+
```
152+
153+
Now, run OSM installation with custom configuration.
154+
155+
### Install OSM with Contour for Ingress
156+
OSM provides multiple options to expose mesh services externally using ingress. OSM has been tested with [Contour](https://projectcontour.io/), which
157+
works with the ingress controller installed outside the mesh and provisioned with a certificate to participate in the mesh.
158+
Refer to [OSM's ingress documentation](https://docs.openservicemesh.io/docs/guides/traffic_management/ingress/#1-using-contour-ingress-controller-and-gateway)
159+
and [demo](https://docs.openservicemesh.io/docs/demos/ingress_contour/) to learn more. Values to configure
160+
Contour must be passed in during OSM installation using the Azure CLI.
161+
162+
> [!NOTE]
163+
> Use the commands provided in the OSM GitHub documentation with caution. Ensure that you use the correct namespace name `arc-osm-system`.
164+
165+
To set required values for configuring Contour, create the following JSON file.
166+
```json
167+
{
168+
"osm.osm.osmNamespace" : "arc-osm-system",
169+
"osm.contour.enabled" : "true",
170+
"osm.contour.configInline.tls.envoy-client-certificate.name" : "osm-contour-envoy-client-cert",
171+
"osm.contour.configInline.tls.envoy-client-certificate.namespace" : "arc-osm-system"
172+
}
173+
```
174+
175+
Now, run OSM installation with custom configuration.
176+
122177
### Install Azure Arc-enabled OSM using ARM template
123178

124179
After connecting your cluster to Azure Arc, create a json file with the following format, making sure to update the \<cluster-name\> and \<osm-arc-version\> values:
@@ -181,20 +236,18 @@ After connecting your cluster to Azure Arc, create a json file with the followin
181236
}
182237
```
183238

184-
Now set the environment variables:
185-
239+
Set the environment variables:
186240
```azurecli-interactive
187241
export TEMPLATE_FILE_NAME=<template-file-path>
188242
export DEPLOYMENT_NAME=<desired-deployment-name>
189243
```
190244

191-
Finally, run this command to install the OSM extension through az CLI:
192-
245+
Run the command below to install the OSM extension using the az CLI:
193246
```azurecli-interactive
194247
az deployment group create --name $DEPLOYMENT_NAME --resource-group $RESOURCE_GROUP --template-file $TEMPLATE_FILE_NAME
195248
```
196249

197-
Now, you should be able to view the OSM resources and use the OSM extension in your cluster.
250+
You should now be able to view the OSM resources and use the OSM extension in your cluster.
198251

199252
## Validate the Azure Arc-enabled Open Service Mesh installation
200253

@@ -347,67 +400,7 @@ To make changes to the OSM ConfigMap for version v0.8.4, use the following guida
347400

348401
> [!NOTE]
349402
> To ensure that the ConfigMap changes are not reverted to the default, pass in the same configuration settings to all subsequent az k8s-extension create commands.
350-
351-
## Certificate Management
352-
[cert-manager](https://cert-manager.io/) is a provider that can be used for issuing signed certificates to OSM without
353-
the need for storing private keys in Kubernetes. Refer to OSM's [cert-manager documentation](https://release-v0-11.docs.openservicemesh.io/docs/guides/certificates/)
354-
and [demo](https://docs.openservicemesh.io/docs/demos/cert-manager_integration/) to learn more. Values to configure cert-manager must be passed in during OSM installation using the Azure CLI.
355-
356-
> [!NOTE]
357-
> Use the commands provided in the OSM GitHub documentation with caution. Ensure that you use the correct namespace name `arc-osm-system`.
358-
359-
To set cert-manager as the certificate provider, create a JSON file with the following `certificateProvider.kind` value.
360-
Include and update the subsequent `certmanager.issuer` lines if you would like to change from default values specified in OSM documentation.
361-
362-
```json
363-
{
364-
"osm.osm.certificateProvider.kind" : "cert-manager",
365-
"osm.osm.certmanager.issuerName" : "<issuer name>",
366-
"osm.osm.certmanager.issuerKind" : "<issuer kind>",
367-
"osm.osm.certmanager.issuerGroup" : "<issuer group>"
368-
}
369-
```
370-
371-
Set the file path as an environment variable:
372-
```azurecli-interactive
373-
export SETTINGS_FILE=<json-file-path>
374-
```
375-
376-
Run the `az k8s-extension create` command used to create the OSM extension, and pass in the settings file using configuration settings:
377-
```azurecli-interactive
378-
az k8s-extension create --cluster-name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --cluster-type connectedClusters --extension-type Microsoft.openservicemesh --scope cluster --release-train pilot --name osm --version $VERSION --configuration-settings-file $SETTINGS_FILE
379-
```
380-
381-
## Ingress
382-
OSM provides multiple options to expose mesh services externally using ingress. OSM has been tested with [Contour](https://projectcontour.io/), which
383-
works with the ingress controller installed outside the mesh and provisioned with a certificate to participate in the mesh.
384-
Refer to [OSM's ingress documentation](https://docs.openservicemesh.io/docs/guides/traffic_management/ingress/#1-using-contour-ingress-controller-and-gateway)
385-
and [demo](https://docs.openservicemesh.io/docs/demos/ingress_contour/) to learn more. Values to configure
386-
Contour must be passed in during OSM installation using the Azure CLI.
387-
388-
> [!NOTE]
389-
> Use the commands provided in the OSM GitHub documentation with caution. Ensure that you use the correct namespace name `arc-osm-system`.
390-
391-
To set required values for configuring Contour, create the following JSON file.
392-
```json
393-
{
394-
"osm.osm.osmNamespace" : "arc-osm-system",
395-
"osm.contour.enabled" : "true",
396-
"osm.contour.configInline.tls.envoy-client-certificate.name" : "osm-contour-envoy-client-cert",
397-
"osm.contour.configInline.tls.envoy-client-certificate.namespace" : "arc-osm-system"
398-
}
399-
```
400-
401-
Set the file path as an environment variable:
402-
```azurecli-interactive
403-
export SETTINGS_FILE=<json-file-path>
404-
```
405-
406-
Run the `az k8s-extension create` command used to create the OSM extension, and pass in the settings file using configuration settings:
407-
```azurecli-interactive
408-
az k8s-extension create --cluster-name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --cluster-type connectedClusters --extension-type Microsoft.openservicemesh --scope cluster --release-train pilot --name osm --version $VERSION --configuration-settings-file $SETTINGS_FILE
409-
```
410-
403+
411404
## Using the Azure Arc-enabled Open Service Mesh
412405

413406
To start using OSM capabilities, you need to first onboard the application namespaces to the service mesh. Download the OSM CLI from [OSM GitHub releases page](https://github.com/openservicemesh/osm/releases/). Once the namespaces are added to the mesh, you can configure the SMI policies to achieve the desired OSM capability.

0 commit comments

Comments
 (0)