6 Rolling Back CNC Console
This section provides information about rolling back Cloud Native Configuration Console deployment to the previous release.
- M-CNCC IAM
- M-CNCC Core
- A-CNCC Core
The following steps must be followed while performing the rollback:
Caution:
It is recommended to verify the copy pasted content especially when the hyphens or any special characters are part of copied content.
User can rollback CNC Console from a source release to a target release using CDCS or CLI procedures as outlined in the following table:
Rollback Task | References | Non OCI Environment | OCI Environment | |
---|---|---|---|---|
Applicable for CDCS | Applicable for CLI | Applicable for CNC Console deployment using OCI | ||
M- CNCC IAM DB Rollback or Restore | CNCC IAM DB Rollback or Restore | Yes | Yes | No |
CNC Console Rollback | CNCC Rollback | See Oracle Communications CD Control Server Installation and Upgrade Guide | Yes | Yes |
6.1 Supported Rollback Paths
This section describes the supported upgrade paths for CNC Console
Table 6-1 CNC Console Rollback Sequence
Deployment Mode | Source Version | Target Version | Rollback Sequence |
---|---|---|---|
Single Cluster | 24.1.x | 23.3.x or 23.4.x |
|
Multi Cluster | 24.1.x | 23.3.x or 23.4.x |
|
Note:
For OCI:- Starting from version 24.1.0, the CNC Console now supports deployment on OCI.
- CNC Console multicluster feature is not supported.
6.2 Pre-rollback Tasks
This section describes the tasks to be performed before a rollback.
6.2.1 M-CNCC IAM DB Rollback or Restore
This section provides details of CNC Console IAM Rollback. In case of CNC Console IAM Upgrade failure, rollback CNC Console IAM DB to previous version by following the below steps.
Note:
Not applicable for OCI deployment.
Note:
The latest backup must be used for rollback.
- Log in to the deployment cluster, drop the existing database,
and create a new database. Restore the new database with the DB Schema file
provided as part of package (<occncc_rollback_iam_schema_<version>.sql>):
Run the following command to drop the Database and create a new database:
DROP DATABASE <CNCC Database> CREATE DATABASE IF NOT EXISTS <CNCC Database>;
For example:To be run in the mysql pod: DROP DATABASE cnccdb; CREATE DATABASE IF NOT EXISTS cnccdb;
Note:
You must take the<occncc_rollback_iam_schema_<version>.sql>
file from the CNC Console version to which you are performing the rollback. For example, if you are performing rollback from version n to version n-2, you must use the<occncc_rollback_iam_schema_<version>.sql>
file given in the CNC Console package of version n-2. - Copy the DB Schema file provided as part of package into the
MYSQl pod (occncc_rollback_iam_schema_<version>.sql).
Before copying the file into MYSQL pod replace string "InnoDB" with "ndbcluster" using following command:
For example:sed -i 's/InnoDB/ndbcluster/g' occncc_rollback_iam_schema_<version>.sql
sed -i 's/InnoDB/ndbcluster/g' occncc_rollback_iam_schema_23.4.0.sql
Run the following command to copy the DB Schema file:
For example:kubectl cp <occncc_rollback_iam_schema.sql> <namespace>/<pod-name>:<directory where you want your file placed>
kubectl cp occncc_rollback_iam_schema_<version>.sql cndbtier1/ndbappmysqld-0:/home/mysql
- Run the following command to connect to the SQL node of the NDB
cluster or connect to the
cnDbBTier:
For example:$ kubectl -n <cndbtier_namespace> exec -it <cndbtier_sql_pod_name> -c <cndbtier_sql_container_name> -- bash
$ kubectl -n cndbtier exec -it ndbappmysqld-0 -c mysqlndbcluster -- bash
- Restore this new database with the DB Schema file provided as
part of package (occncc_rollback_iam_schema_<version>.sql).
Run the following command to Restore DB Schema:
mysql -h 127.0.0.1 -u root -p <DB name> < <DB Schema file name>
For example:mysql -h 127.0.0.1 -u root -p cnccdb <occncc_rollback_iam_schema_<version>.sql
- The DB dump has to be rearranged sequentially not to get any
foreign key constraints issue. For that, create the ENV variable,s and run
it in a loop.
- Run the following command to convert the mysqldump file
which was taken as a backup (sql.gz file) to a sql file to rearrange
it:
Unzipping the gz file:
gunzip -d <<backup_filename>.sql.gz>
For example:gunzip -d cnccdbBackup.sql.gz
- Rearrange the backup sql file in correct order by using
following procedure:
- Run the following command to rearrange the Table
Data :
export KC_TABLES="ADMIN_EVENT_ENTITY RESOURCE_SERVER RESOURCE_SERVER_POLICY ASSOCIATED_POLICY REALM CLIENT AUTHENTICATION_FLOW AUTHENTICATION_EXECUTION AUTHENTICATOR_CONFIG AUTHENTICATOR_CONFIG_ENTRY BROKER_LINK CLIENT_ATTRIBUTES CLIENT_AUTH_FLOW_BINDINGS KEYCLOAK_ROLE CLIENT_INITIAL_ACCESS CLIENT_NODE_REGISTRATIONS CLIENT_SCOPE CLIENT_SCOPE_ATTRIBUTES CLIENT_SCOPE_CLIENT CLIENT_SCOPE_ROLE_MAPPING USER_SESSION CLIENT_SESSION CLIENT_SESSION_AUTH_STATUS CLIENT_SESSION_NOTE CLIENT_SESSION_PROT_MAPPER CLIENT_SESSION_ROLE CLIENT_USER_SESSION_NOTE COMPONENT COMPONENT_CONFIG COMPOSITE_ROLE DATABASECHANGELOG USER_ENTITY CREDENTIAL DATABASECHANGELOGLOCK DEFAULT_CLIENT_SCOPE EVENT_ENTITY FEDERATED_IDENTITY FEDERATED_USER FED_USER_ATTRIBUTE FED_USER_CONSENT FED_USER_CONSENT_CL_SCOPE FED_USER_CREDENTIAL FED_USER_GROUP_MEMBERSHIP FED_USER_REQUIRED_ACTION FED_USER_ROLE_MAPPING KEYCLOAK_GROUP GROUP_ATTRIBUTE GROUP_ROLE_MAPPING IDENTITY_PROVIDER IDENTITY_PROVIDER_CONFIG IDENTITY_PROVIDER_MAPPER IDP_MAPPER_CONFIG MIGRATION_MODEL OFFLINE_CLIENT_SESSION OFFLINE_USER_SESSION POLICY_CONFIG PROTOCOL_MAPPER PROTOCOL_MAPPER_CONFIG REALM_ATTRIBUTE REALM_DEFAULT_GROUPS REALM_LOCALIZATIONS REALM_ENABLED_EVENT_TYPES REALM_EVENTS_LISTENERS REALM_REQUIRED_CREDENTIAL REALM_SMTP_CONFIG REALM_SUPPORTED_LOCALES REDIRECT_URIS REQUIRED_ACTION_CONFIG REQUIRED_ACTION_PROVIDER RESOURCE_SERVER_RESOURCE RESOURCE_ATTRIBUTE RESOURCE_POLICY RESOURCE_SERVER_SCOPE RESOURCE_SCOPE RESOURCE_SERVER_PERM_TICKET RESOURCE_URIS ROLE_ATTRIBUTE SCOPE_MAPPING SCOPE_POLICY USERNAME_LOGIN_FAILURE USER_ATTRIBUTE USER_CONSENT USER_CONSENT_CLIENT_SCOPE USER_FEDERATION_PROVIDER USER_FEDERATION_CONFIG USER_FEDERATION_MAPPER USER_FEDERATION_MAPPER_CONFIG USER_GROUP_MEMBERSHIP USER_REQUIRED_ACTION USER_ROLE_MAPPING USER_SESSION_NOTE WEB_ORIGINS";
- Run the following command to create an ENV
pointing to the sql file to be
filtered:
For example:export KC_BACKUP="./<Backup SQL Dump File>";
export KC_BACKUP="./cnccdbBackup.sql";
- Run the following command to rearrange the dump file to make it in sequential insertion order:
Example:for i in $KC_TABLES; do grep "INSERT INTO \`$i\`"$KC_BACKUP; done > <file name>
for i in $KC_TABLES; do grep "INSERT INTO \`$i\`"$KC_BACKUP; done > /tmp/restore.sql
- Run the following command to rearrange the Table
Data :
- Run the following command to convert the mysqldump file
which was taken as a backup (sql.gz file) to a sql file to rearrange
it:
- Run the following command to copy file into the
pod:
kubectl cp <backup_file name>.sql <namespace>/<pod-name>:<directory where you want your file placed>
For example:kubectl cp restore.sql cndbtier1/ndbappmysqld-0:/home/mysql
- Run the following command to connect to the SQL node of the NDB
cluster or connect to the
cnDBTier:
$ kubectl -n <cndbtier_namespace> exec -it <cndbtier_sql_pod_name> -c <cndbtier_sql_container_name>-- bash
For example:$ kubectl -n cndbtier exec -it ndbappmysqld-0 -c mysqlndbcluster -- bash
- Populate the Database with data using the file that you have, after filtering the sqldump file.
- Run the following command to restore Database Data:
mysql -h 127.0.0.1 -u root -p <DB name> < <backup_filename>
mysql -h 127.0.0.1 -u root -p cnccdb < restore.sql
- Log in to the MySQL prompt and confirm that the databases are restored.
- Run the following command to Delete the sql files copied into
the pod after the restore process is complete and successful (by logging
into the SQL
node):
Example:rm -rf <DB Schema file name> rm -rf <backup_filename>
rm -rf occncc_rollback_iam_schema_<version>.sql rm -rf restore.sql
6.3 CNC Console Rollback
This section describes the procedure to Rollback CNC Console.
Note:
Existing release name must be used for rollback.- Rollback M-CNCC IAM DB.
Note:
Not applicable for OCI deployment. - Run the following command to check which revision you need to
rollback:
$ helm history <release_name> -n <namespace>
For example:$ helm history cncc -n cncc
- Run the following command to rollback to the required
revision:
For example:$ helm rollback <release_name> <revision_number> -n <namespace>
$ helm rollback cncc 1 -n cncc