- Kubernetes Operator User's Guide
- Use Helm in Your TimesTen Kubernetes Operator Environment
- Roll Back an Upgrade
- Roll Back a Replicated TimesTen Upgrade
Roll Back a Replicated TimesTen Upgrade
You can use Helm to roll back an upgrade of a replicated TimesTenClassic object. This reverts the replicated TimesTenClassic object and its associated TimesTen databases to the downgraded release.
Note:
Ensure you perform a downgrade at the appropriate time. We recommend that you do not perform a downgrade at the busiest time of a production day. Applications may experience outages and perhaps reduced performance as a result of the downgrade procedure.- Before the rollback, do the following:
- Confirm the replicated TimesTenClassic object exists in your namespace.
kubectl get ttc
The output is similar to the following:NAME STATE ACTIVE AGE norepsamplehelm AllReplicasReady N/A 19h repsamplehelm Normal repsamplehelm-1 22h
The
repsamplehelm
TimesTenClassic object exists and is in theNormal
state. - Verify the image.
kubectl describe ttc repsamplehelm | grep Image
The output is similar to the following:Image: container-registry.oracle.com/timesten/timesten:22.1.1.28.0 ...
- Confirm the replicated TimesTenClassic object exists in your namespace.
- Review the revision history.
helm history repsamplehelm
The output is similar to the following:REVISION UPDATED STATUS CHART APP VERSION DESCRIPTION 1 Sun Aug 4 14:58:40 2024 superseded ttclassic-2211270.1.0 22.1.1.27.0 Install complete 2 Mon Aug 5 02:25:13 2024 deployed ttclassic-2211280.1.0 22.1.1.28.0 Upgrade complete
Revision
2
of therepsamplehelm
chart is running release22.1.1.28.0
. Revision1
is running release22.1.1.27.0
. - Roll back to revision
1
.helm rollback repsamplehelm 1
The output is the following:
Rollback was a success! Happy Helming!
- Observe the downgrade and how the TimesTenClassic object transitions from and to various states.
kubectl get events -w
The output is similar to the following:
17m Normal Upgrade timestenclassic/repsamplehelm Image updated, automatic upgrade started 17m Normal Upgrade timestenclassic/repsamplehelm Deleted standby pod repsamplehelm-0 during upgrade 17m Warning Failed timestenclassic/repsamplehelm Pod repsamplehelm-0 was replaced 17m Normal StateChange timestenclassic/repsamplehelm Pod repsamplehelm-0 is Not Ready 17m Warning StateChange timestenclassic/repsamplehelm TimesTenClassic was Normal, now ActiveTakeover 17m Normal StateChange timestenclassic/repsamplehelm TimesTenClassic was ActiveTakeover, now StandbyDown 14m Normal Info timestenclassic/repsamplehelm Pod repsamplehelm-0 Agent Up 14m Normal Info timestenclassic/repsamplehelm Pod repsamplehelm-0 Instance Exists 14m Normal Info timestenclassic/repsamplehelm Pod repsamplehelm-0 Daemon Down 14m Normal Info timestenclassic/repsamplehelm Pod repsamplehelm-0 Daemon Up 14m Normal Info timestenclassic/repsamplehelm Pod repsamplehelm-0 Database Unloaded 14m Normal Info timestenclassic/repsamplehelm Pod repsamplehelm-0 Database None 14m Normal Info timestenclassic/repsamplehelm pollAsyncStatus: Async polling for RepDuplicate, timeout in 597 secs 14m Normal Info timestenclassic/repsamplehelm pollAsyncStatus: Async polling for RepDuplicate, timeout in 594 secs 14m Normal Info timestenclassic/repsamplehelm pollAsyncStatus: Async polling for RepDuplicate, timeout in 591 secs 14m Normal Info timestenclassic/repsamplehelm pollAsyncStatus: Async polling for RepDuplicate, timeout in 588 secs 14m Normal Info timestenclassic/repsamplehelm RepDuplicate completed in 14 secs 14m Normal Info timestenclassic/repsamplehelm Pod repsamplehelm-0 Database Loaded 14m Normal Info timestenclassic/repsamplehelm Pod repsamplehelm-0 RepAgent Not Running 14m Normal Info timestenclassic/repsamplehelm Pod repsamplehelm-0 RepScheme Exists 14m Normal StateChange timestenclassic/repsamplehelm Pod repsamplehelm-0 RepState IDLE 14m Normal Info timestenclassic/repsamplehelm Pod repsamplehelm-0 Database Loaded 14m Normal Info timestenclassic/repsamplehelm Pod repsamplehelm-0 RepAgent Running 14m Normal Info timestenclassic/repsamplehelm Pod repsamplehelm-0 RepScheme Exists 14m Normal StateChange timestenclassic/repsamplehelm Pod repsamplehelm-0 RepState STANDBY 14m Normal StateChange timestenclassic/repsamplehelm Pod repsamplehelm-0 is Ready 14m Normal Upgrade timestenclassic/repsamplehelm Upgrade of standby complete 14m Normal StateChange timestenclassic/repsamplehelm TimesTenClassic was StandbyDown, now Normal 14m Normal Upgrade timestenclassic/repsamplehelm Deleted active pod repsamplehelm-1 during upgrade 14m Warning Failed timestenclassic/repsamplehelm Pod repsamplehelm-1 has failed 14m Normal StateChange timestenclassic/repsamplehelm Pod repsamplehelm-1 is Not Ready 14m Normal StateChange timestenclassic/repsamplehelm Pod repsamplehelm-1 is Not Active Ready 14m Warning StateChange timestenclassic/repsamplehelm TimesTenClassic was Normal, now ActiveDown 13m Warning Failed timestenclassic/repsamplehelm Pod repsamplehelm-1 was replaced 13m Normal Info timestenclassic/repsamplehelm Pod repsamplehelm-0 Database Updatable 13m Normal StateChange timestenclassic/repsamplehelm Pod repsamplehelm-0 RepState ACTIVE 13m Normal StateChange timestenclassic/repsamplehelm Pod repsamplehelm-0 is Not Ready 13m Normal StateChange timestenclassic/repsamplehelm TimesTenClassic was ActiveDown, now ActiveTakeover 13m Normal StateChange timestenclassic/repsamplehelm Pod repsamplehelm-0 is Ready 13m Normal StateChange timestenclassic/repsamplehelm Pod repsamplehelm-0 is Active Ready 13m Normal StateChange timestenclassic/repsamplehelm TimesTenClassic was ActiveTakeover, now StandbyDown 12m Normal Info timestenclassic/repsamplehelm Pod repsamplehelm-1 Agent Up 12m Normal Info timestenclassic/repsamplehelm Pod repsamplehelm-1 Instance Exists 12m Normal Info timestenclassic/repsamplehelm Pod repsamplehelm-1 Daemon Down 12m Normal Info timestenclassic/repsamplehelm Pod repsamplehelm-1 Daemon Up 12m Normal Info timestenclassic/repsamplehelm Pod repsamplehelm-1 Database Unloaded 12m Normal Info timestenclassic/repsamplehelm Pod repsamplehelm-1 Database None 12m Normal Info timestenclassic/repsamplehelm pollAsyncStatus: Async polling for RepDuplicate, timeout in 597 secs 12m Normal Info timestenclassic/repsamplehelm pollAsyncStatus: Async polling for RepDuplicate, timeout in 594 secs 11m Normal Info timestenclassic/repsamplehelm pollAsyncStatus: Async polling for RepDuplicate, timeout in 591 secs 11m Normal Info timestenclassic/repsamplehelm pollAsyncStatus: Async polling for RepDuplicate, timeout in 588 secs 11m Normal Info timestenclassic/repsamplehelm RepDuplicate completed in 15 secs 11m Normal Info timestenclassic/repsamplehelm Pod repsamplehelm-1 Database Loaded 11m Normal Info timestenclassic/repsamplehelm Pod repsamplehelm-1 RepAgent Not Running 11m Normal Info timestenclassic/repsamplehelm Pod repsamplehelm-1 RepScheme Exists 11m Normal StateChange timestenclassic/repsamplehelm Pod repsamplehelm-1 RepState IDLE 11m Normal Info timestenclassic/repsamplehelm Pod repsamplehelm-1 Database Loaded 11m Normal Info timestenclassic/repsamplehelm Pod repsamplehelm-1 RepAgent Running 11m Normal Info timestenclassic/repsamplehelm Pod repsamplehelm-1 RepScheme Exists 11m Normal StateChange timestenclassic/repsamplehelm Pod repsamplehelm-1 RepState STANDBY 11m Normal StateChange timestenclassic/repsamplehelm Pod repsamplehelm-1 is Ready 11m Normal Upgrade timestenclassic/repsamplehelm Upgrade completed in 326 secs 11m Normal StateChange timestenclassic/repsamplehelm TimesTenClassic was StandbyDown, now Normal
The downgrade process completes. The TimesTenClassic object is in the
Normal
state. TimesTen databases are up and running and functioning properly. Active standby pair replication is configured between them. - After the downgrade, do the following:
- Confirm the replicated TimesTenClassic object is in the
Normal
state and the active isrepsamplehelm-0
.kubectl get ttc
The output is similar to the following:NAME STATE ACTIVE AGE repsamplehelm Normal repsamplehelm-0 23h
The object is in the
Normal
state. The active isrepsamplehelm-0
. - Verify the image.
kubectl describe ttc repsamplehelm | grep Image
The output is similar to the following:Image: container-registry.oracle.com/timesten/timesten:22.1.1.27.0 ...
- Confirm the replicated TimesTenClassic object is in the
- Check the history.
helm history repsamplehelm
The output is similar to the following:
REVISION UPDATED STATUS CHART APP VERSION DESCRIPTION 1 Sun Aug 4 14:58:40 2024 superseded ttclassic-2211270.1.0 22.1.1.27.0 Install complete 2 Mon Aug 5 02:25:13 2024 superseded ttclassic-2211280.1.0 22.1.1.28.0 Upgrade complete 3 Mon Aug 5 13:54:33 2024 deployed ttclassic-2211270.1.0 22.1.1.27.0 Rollback to 1
Revision
3
is downgraded. - Confirm the
repsamplehelm
release is downgraded.helm list
The output is similar to the following:NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION repsamplehelm default 3 2024-08-05 13:54:33.909336613 +0000 UTC deployed ttclassic-2211270.1.0 22.1.1.27.0 ...
The
repsamplehelm
chart release is downgraded.
Normal
state. The replicated active standby pair of TimesTen databases are running the downgraded release and are fully operational.