$ sudo chmod +x cpma
The Control Plane Migration Assistant (CPMA) is a CLI-based tool that assists you in migrating the control plane from OpenShift Container Platform 3.7 (or later) to 4.5. The CPMA processes the OpenShift Container Platform 3 configuration files and generates custom resource manifest files, which are consumed by OpenShift Container Platform 4.5 Operators.
The Control Plane Migration Assistant (CPMA) is a CLI-based tool that assists you in migrating the control plane from OpenShift Container Platform 3.7 (or later) to 4.5 with the Migration Toolkit for Containers (MTC).
You can download the CPMA binary file from the Red Hat Customer Portal and install it on Linux, macOS, or Windows operating systems.
In the Red Hat Customer Portal, navigate to Downloads → Red Hat OpenShift Container Platform.
On the Download Red Hat OpenShift Container Platform page, select Red Hat OpenShift Container Platform from the Product Variant list.
Select CPMA 1.0 for RHEL 7 from the Version list. This binary works on RHEL 7 and RHEL 8.
Click Download Now to download cpma
for Linux and macOS or cpma.exe
for Windows.
Save the file in a directory defined as $PATH
for Linux and macOS or %PATH%
for Windows.
For Linux, make the file executable:
$ sudo chmod +x cpma
The Control Plane Migration Assistant (CPMA) generates CR manifests, which are consumed by OpenShift Container Platform 4.5 Operators. The CPMA also creates a report that indicates which OpenShift Container Platform 3 features are supported fully, partially, or not at all.
CPMA can run in remote mode, retrieving the configuration files from the source cluster using SSH, or in local mode, using local copies of the source cluster’s configuration files.
The source cluster must be OpenShift Container Platform 3.7 or later.
The source cluster must be updated to the latest synchronous release.
An environment health check must be run on the source cluster to confirm that there are no diagnostic errors or warnings.
The CPMA binary must be executable.
You must have cluster-admin
privileges for the source cluster.
Log in to the OpenShift Container Platform 3 cluster:
$ oc login https://<master1.example.com> (1)
1 | Specify the master node. You must be logged in to receive a token for the Kubernetes and OpenShift Container Platform APIs. |
Run the CPMA:
$ cpma --manifests=false (1)
1 | The --manifests=false option runs the CPMA without generating CR manifests. |
Each prompt requires you to provide input, as in the following example:
? Do you wish to save configuration for future use? true
? What will be the source for OCP3 config files? Remote host (1)
? Path to crio config file /etc/crio/crio.conf
? Path to etcd config file /etc/etcd/etcd.conf
? Path to master config file /etc/origin/master/master-config.yaml
? Path to node config file /etc/origin/node/node-config.yaml
? Path to registries config file /etc/containers/registries.conf
? Do wish to find source cluster using KUBECONFIG or prompt it? KUBECONFIG
? Select cluster obtained from KUBECONFIG contexts master1-example-com:443
? Select master node master1.example.com
? SSH login root (2)
? SSH Port 22
? Path to private SSH key /home/user/.ssh/openshift_key
? Path to application data, skip to use current directory .
INFO[29 Aug 19 00:07 UTC] Starting manifest and report generation
INFO[29 Aug 19 00:07 UTC] Transform:Starting for - API
INFO[29 Aug 19 00:07 UTC] APITransform::Extract
INFO[29 Aug 19 00:07 UTC] APITransform::Transform:Reports
INFO[29 Aug 19 00:07 UTC] Transform:Starting for - Cluster
INFO[29 Aug 19 00:08 UTC] ClusterTransform::Transform:Reports
INFO[29 Aug 19 00:08 UTC] ClusterReport::ReportQuotas
INFO[29 Aug 19 00:08 UTC] ClusterReport::ReportPVs
INFO[29 Aug 19 00:08 UTC] ClusterReport::ReportNamespaces
INFO[29 Aug 19 00:08 UTC] ClusterReport::ReportNodes
INFO[29 Aug 19 00:08 UTC] ClusterReport::ReportRBAC
INFO[29 Aug 19 00:08 UTC] ClusterReport::ReportStorageClasses
INFO[29 Aug 19 00:08 UTC] Transform:Starting for - Crio
INFO[29 Aug 19 00:08 UTC] CrioTransform::Extract
WARN[29 Aug 19 00:08 UTC] Skipping Crio: No configuration file available
INFO[29 Aug 19 00:08 UTC] Transform:Starting for - Docker
INFO[29 Aug 19 00:08 UTC] DockerTransform::Extract
INFO[29 Aug 19 00:08 UTC] DockerTransform::Transform:Reports
INFO[29 Aug 19 00:08 UTC] Transform:Starting for - ETCD
INFO[29 Aug 19 00:08 UTC] ETCDTransform::Extract
INFO[29 Aug 19 00:08 UTC] ETCDTransform::Transform:Reports
INFO[29 Aug 19 00:08 UTC] Transform:Starting for - OAuth
INFO[29 Aug 19 00:08 UTC] OAuthTransform::Extract
INFO[29 Aug 19 00:08 UTC] OAuthTransform::Transform:Reports
INFO[29 Aug 19 00:08 UTC] Transform:Starting for - SDN
INFO[29 Aug 19 00:08 UTC] SDNTransform::Extract
INFO[29 Aug 19 00:08 UTC] SDNTransform::Transform:Reports
INFO[29 Aug 19 00:08 UTC] Transform:Starting for - Image
INFO[29 Aug 19 00:08 UTC] ImageTransform::Extract
INFO[29 Aug 19 00:08 UTC] ImageTransform::Transform:Reports
INFO[29 Aug 19 00:08 UTC] Transform:Starting for - Project
INFO[29 Aug 19 00:08 UTC] ProjectTransform::Extract
INFO[29 Aug 19 00:08 UTC] ProjectTransform::Transform:Reports
INFO[29 Aug 19 00:08 UTC] Flushing reports to disk
INFO[29 Aug 19 00:08 UTC] Report:Added: report.json
INFO[29 Aug 19 00:08 UTC] Report:Added: report.html
INFO[29 Aug 19 00:08 UTC] Successfully finished transformations
1 | The Remote host option runs the CPMA in remote mode. |
2 | SSH login : The SSH user must have sudo permissions on the OpenShift Container Platform 3 cluster in order to access the configuration files. |
The CPMA creates the following files and directory in the current directory if you did not specify an output directory:
cpma.yaml
file: Configuration options that you provided when you ran the CPMA
master1.example.com/
: Configuration files from the master node
report.json
: JSON-encoded report
report.html
: HTML-encoded report
Open the report.html
file in a browser to view the CPMA report.
If you generate CR manifests, apply the CR manifests to the OpenShift Container Platform 4.5 cluster, as shown in the following example:
$ oc apply -f 100_CPMA-cluster-config-secret-htpasswd-secret.yaml