This document describes the necessary steps that are required in order to migrate from on-prem to RHOAM with Red Hat having limited access to customer's AWS account.
Note: The following steps are subject to change
These steps must be completed a day (or more) before the migration starts. All of the steps listed in this section are not service affecting and are done in order to minimize the time it takes to migrate.
Owner : Red Hat - BU/SRE-P
Goal : Provide RHOAM Eng team with the access to:
- Destination AWS account
- Destination cluster kubeadmin access
Owner : Red Hat - RHOAM Eng
Goal : Confirm access to the resources from Pre-requisite 1
Owner : Red Hat - RHOAM Eng
Goal : Create migration cluster and:
- Confirm access to it
- Install 3scale version matching the source 3scale version using -mas channel
Owner : Red Hat - RHOAM Eng
Goal : Configure stand alone VPC
Owner : Red Hat - RHOAM Eng
Goal : On migration cluster AWS account standalone VPC create the following:
- System database matching the same type and version that's used on source cluster
- Two Redis instances with version matching RHOAM version
- In case if the system database is not PostgreSQL database type, provision PostgreSQL - this database will be used as the destination database during conversion from MySQL or Oracle to PostgreSQL
Owner : Customer
Goal : Create an S3 bucket with 3scale secrets in it
Owner : Customer
Goal : Provide RHOAM Eng with the access to the S3 bucket
Owner : RHOAM Eng
Goal : Confirm that the access to the S3 is correct and that the bucket contents can be pulled
Owner : Customer
Goal : Configure IDP on the destination cluster and confirm that the cluster is accessible via the IDP created
Owner : Customer
Goal : Create custom domain CR on destination cluster
Owner : Customer
Goal : Trigger RHOAM installation, ensure that the following configuration is correct:
- SMTP
- Custom domain
- Notification email address
- Quota
Owner : RHOAM Eng
Goal : Scale down RHOAM Operator as soon as the APIManager is created on destination cluster
Owner : Customer
Goal : Confirm that there's a rollback procedure in place in case of migration failure
Once all of the pre-requisites are met the migration can start
Below are the steps to be performed on source cluster
Owner : Customer
Goal : Prepare 3scale isntance for the migration:
- Stop traffic going to 3scale instance
- Clear the job queue or accept the potential data loss
- Scale down 3scale instance
Owner : Customer
Goal : Perform data dump from:
- System database
- Backend Redis instance
- Scale down 3scale instance
Below are the steps to be performed on the migration cluster
Owner : RHOAM Eng
Goal : Source system database with the dump provided by the customer
Owner : RHOAM Eng
Goal : Upgrade the MySQL version from 5.28 to 8.X
Owner : RHOAM Eng
Goal : Migrate from MySQL to PostgreSQL
Owner : RHOAM Eng
Goal : Edit master routes and customer tenant/tenants admin routes
Owner : RHOAM Eng
Goal : Scale down 3scale instance
Owner : RHOAM Eng
Goal : Copy secrets from source to migration cluster and plug in AWS system database and Redises to 3scale instance
Copy secrets:
Plug in external databases to 3scale
Owner : RHOAM Eng
Goal : Scale up 3scale and confirm apis are accessible via master api calls
Owner : RHOAM Eng
Goal : Perform 3scale updates up to version matching current RHOAM 3scale version
Owner : RHOAM Eng
Goal : Scale 3scale down and update master and customer tenant/tenants admin portal route to the route matching destination cluster
Scale 3scale down:
Update master and customer tenant/tenants admin portal routes
Owner : RHOAM Eng
Goal : Perform backup of Postgres database and put backup in S3 bucket (if needed)
Below are the steps required to be performed against production cluster and AWS account
Owner : RHOAM Eng
Goal : Scale 3scale down and push Postgres database dump to destination cluster via throwaway pod
Scale down 3scale instance
Source system database with the PostgreSQL dump
Owner : Customer
Goal : Recover backend Redis
Owner : RHOAM Eng
Goal : Copy secrets from local to destination cluster
Owner : RHOAM Eng
Goal : Scale up 3scale and provide routes to the customer so that they can configure their systems with the new routes
Owner : RHOAM Eng
Goal : Set master account plan to "Enterprise"
Owner : RHOAM Eng
Goal : Confirm 3scale is up and running, navigate to customer tenant/s (impresonate) make few api calls etc
Owner : RHOAM Eng
Goal : Create RHOAM default tenant
Owner : RHOAM Eng
Goal : Scale up RHOAM
Owner : RHOAM Eng
Goal : Wait for RHOAM Operator to finish installation
Owner : RHOAM Eng
Goal : Create SSO integration on additional tenant
Owner : Customer
Goal : Publish SSO Integration by logging to 3scale and testing SSO Integration
Owner : Customer
Goal : Perform verification steps
Owner : Customer
Goal : Update systems to point to new routes