|
| 1 | +[id="ossm-upgrade-to-2-1"] |
| 2 | += Upgrading {ProductName} from version 2.0 to version 2.1 |
| 3 | +include::modules/ossm-document-attributes.adoc[] |
| 4 | +:context: oossm-upgrading-to-2-1 |
| 5 | + |
| 6 | +toc::[] |
| 7 | + |
| 8 | +Upgrading from version 2.0 to 2.1 requires manual steps that migrate your workloads and application to a new instance of {ProductName} running the new version. |
| 9 | + |
| 10 | +[id="ossm-upgrading-upgrade-2-1_{context}"] |
| 11 | +== Upgrading to {ProductName} 2.1 |
| 12 | + |
| 13 | +To upgrade {ProductName}, you must update the version field of the {ProductName} `ServiceMeshControlPlane` v2 resource. Then, once it's configured and applied, restart the application pods to update each sidecar proxy and its configuration. |
| 14 | + |
| 15 | +.Prerequisites |
| 16 | + |
| 17 | +* You are running {product-title} 4.6 or later. |
| 18 | +* You have the {ProductName} version 2.1.0 operator. If the *automatic* upgrade path is enabled, the operator automatically downloads the latest information. However, there are steps you must take to use the features in {ProductName} version 2.1. |
| 19 | +* You must upgrade from {ProductName} 2.0 to 2.1. You cannot upgrade `ServiceMeshControlPlane` from 1.1 to 2.1 directly. |
| 20 | + |
| 21 | +.Procedure |
| 22 | + |
| 23 | +. Switch to the project that contains your `ServiceMeshControlPlane` resource. In this example, `istio-system` is the name of the control plane project. |
| 24 | ++ |
| 25 | +[source,terminal] |
| 26 | +---- |
| 27 | +$ oc project istio-system |
| 28 | +---- |
| 29 | + |
| 30 | +. Check your v2 `ServiceMeshControlPlane` resource configuration to make sure it is valid. |
| 31 | ++ |
| 32 | +.. Run the following command to view your `ServiceMeshControlPlane` resource as a v2 resource. |
| 33 | ++ |
| 34 | +[source,terminal] |
| 35 | +---- |
| 36 | +$ oc get smcp -o yaml |
| 37 | +---- |
| 38 | + |
| 39 | +TIP: Back up your control plane configuration. |
| 40 | + |
| 41 | +. Update the `.spec.version` field from v2.0 to v2.1, and apply the configuration. |
| 42 | ++ |
| 43 | +If you see the following message, update the existing `Mixer` type to `Istiod` type in the existing Control Plane spec before you update the `.spec.version` field: |
| 44 | ++ |
| 45 | +[source,text] |
| 46 | +---- |
| 47 | +An error occurred |
| 48 | +admission webhook smcp.validation.maistra.io denied the request: [support for policy.type "Mixer" and policy.Mixer options have been removed in v2.1, please use another alternative, support for telemetry.type "Mixer" and telemetry.Mixer options have been removed in v2.1, please use another alternative]” |
| 49 | +---- |
| 50 | ++ |
| 51 | +For example: |
| 52 | ++ |
| 53 | +[source,terminal] |
| 54 | +---- |
| 55 | +spec: |
| 56 | + policy: |
| 57 | + type: Istoid |
| 58 | + telemetry: |
| 59 | + type: Istiod |
| 60 | + version: v2.1 |
| 61 | +---- |
| 62 | ++ |
| 63 | +Alternatively, instead of using the command line, you can use the web console to edit the control plane. In the {product-title} web console, click *Project* and select the project name you just entered. |
| 64 | ++ |
| 65 | +.. Click *Operators* -> *Installed Operators*. |
| 66 | +.. Find your `ServiceMeshControlPlane` instance. |
| 67 | +.. Select *YAML view* and update text of the YAML file, as shown in the previous example. |
| 68 | +.. Click *Save*. |
| 69 | + |
| 70 | +[id="ossm-upgrading-differences-arch_{context}"] |
| 71 | +== Changes from prior release |
| 72 | + |
| 73 | +This upgrade introduces the following architectural and behavioral changes. |
| 74 | + |
| 75 | +.Architecture changes |
| 76 | + |
| 77 | +Mixer has been completely removed in {ProductName} 2.1. Upgrading from a {ProductName} 2.0.x release to 2.1 will be blocked if Mixer is enabled. |
| 78 | + |
| 79 | +[id="ossm-upgrading-differences-behavior_{context}"] |
| 80 | +.Behavioral changes |
| 81 | + |
| 82 | +* `AuthorizationPolicy` updates |
| 83 | +** With the PROXY protocol, if you're using `ipBlocks` and `notIpBlocks` to specify remote IP addresses, update the configuration to use `remoteIpBlocks` and `notRemoteIpBlocks` instead. |
| 84 | +** Added support for nested JSON Web Token (JWT) claims |
| 85 | +* `EnvoyFilter` breaking changes |
| 86 | +** Must use `typed_config` |
| 87 | +** xDS v2 is no longer supported |
| 88 | +** Deprecated filter names |
| 89 | +* Older versions of proxies may report 503 status codes when receiving 1xx or 204 status codes from newer proxies. |
| 90 | + |
| 91 | +[NOTE] |
| 92 | +==== |
| 93 | +Red Hat is unable to support `EnvoyFilter` configuration except where explicitly documented. This is due to tight coupling with the underlying Envoy APIs, meaning that backward compatibility cannot be maintained. |
| 94 | +==== |
| 95 | + |
| 96 | +[id="ossm-upgrading-mig-apps_{context}"] |
| 97 | +== Next steps for migrating your applications and workflows |
| 98 | + |
| 99 | +To complete the migration, restart all of the application pods in the mesh to upgrade the Envoy sidecar proxies and their configuration. |
| 100 | + |
| 101 | +To perform a rolling update of a deployment use the following command: |
| 102 | + |
| 103 | +[source,terminal] |
| 104 | +---- |
| 105 | +$ oc rollout restart <deployment> |
| 106 | +---- |
| 107 | + |
| 108 | +You must perform a rolling update for all applications that make up the mesh. |
0 commit comments