diff --git a/Jenkinsfile-voltha-bal31-build b/Jenkinsfile-voltha-bal31-build
index 49892b1..d289486 100644
--- a/Jenkinsfile-voltha-bal31-build
+++ b/Jenkinsfile-voltha-bal31-build
@@ -71,7 +71,7 @@
                     export KUBECONFIG=$WORKSPACE/${configBaseDir}/${configKubernetesDir}/${configFileName}.conf
                     cd kind-voltha/
                     if ( ${released} ); then
-                        export EXTRA_HELM_FLAGS="--set defaults.image_tag=null,images.onos.tag=2.2.0"
+                        export EXTRA_HELM_FLAGS="--set defaults.image_tag=null,images.onos.tag=4.0.0,images.onos.repository=voltha/voltha-onos"
                     else
                         export EXTRA_HELM_FLAGS='-f $WORKSPACE/${configBaseDir}/${configKubernetesDir}/voltha/${configFileName}.yml'
                     fi
diff --git a/tests/functional/Voltha_ErrorScenarios.robot b/tests/functional/Voltha_ErrorScenarios.robot
index 29f88cd..4802144 100644
--- a/tests/functional/Voltha_ErrorScenarios.robot
+++ b/tests/functional/Voltha_ErrorScenarios.robot
@@ -58,7 +58,7 @@
 *** Test Cases ***
 Adding the same OLT before and after enabling the device
     [Documentation]    Create OLT, Create the same OLT again and Check for the Error message
-    [Tags]    VOL-2405   VOL-2406   AddSameOLT   functional
+    [Tags]    VOL-2405   VOL-2406   AddSameOLT   functional    released
     [Setup]    Run Keywords    Announce Message    START TEST AddSameOLT
     ...        AND             Start Logging    AddSameOLT
     [Teardown]   Run Keywords     Collect Logs
@@ -88,7 +88,8 @@
 Test Disable or Enable different device id which is not in the device list
     [Documentation]    Disable or Enable  a device id which is not listed in the voltctl device list
     ...    command and ensure that error message is shown.
-    [Tags]    functional    DisableEnableInvalidDevice    VOL-2412-2413
+    ...    VOL-2412-2413
+    [Tags]    functional    DisableEnableInvalidDevice    released
     [Setup]    Run Keywords    Announce Message    START TEST DisableInvalidDevice
     ...        AND             Start Logging    DisableInvalidDevice
     [Teardown]    Run Keywords    Collect Logs
diff --git a/tests/functional/Voltha_FailureScenarios.robot b/tests/functional/Voltha_FailureScenarios.robot
index ada3952..50d294d 100644
--- a/tests/functional/Voltha_FailureScenarios.robot
+++ b/tests/functional/Voltha_FailureScenarios.robot
@@ -104,6 +104,37 @@
         ...    ${src['ip']}    ${src['user']}    ${src['pass']}    ${src['container_type']}    ${src['container_name']}
         Run Keyword And Ignore Error    Collect Logs
     END
+    # Deleting OLT run tests independently (as this test doesn't not run on each POD)
+    Run Keyword If    ${has_dataplane}    Delete Device and Verify
+
+Verify restart openolt-adapter container after VOLTHA is operational
+    [Documentation]    Restart openolt-adapter container after VOLTHA is operational.
+    ...    Prerequisite : ONUs are authenticated and pingable.
+    [Tags]    functional   VOL-1958   RestartPods   released
+    [Setup]    Run Keywords    Announce Message    START TEST RestartPods
+    ...        AND             Start Logging    RestartPods
+    [Teardown]    Run Keywords    Collect Logs
+    ...           AND             Stop Logging    RestartPods
+    ...           AND             Announce Message    END TEST RestartPods
+    # Add OLT device
+    setup
+    # Performing Sanity Test to make sure subscribers are all AUTH+DHCP and pingable
+    Run Keyword If    ${has_dataplane}    Clean Up Linux
+    Wait Until Keyword Succeeds    ${timeout}    2s    Perform Sanity Test
+    ${waitforRestart}    Set Variable    120s
+    ${podStatusOutput}=    Run    kubectl get pods -n ${NAMESPACE}
+    Log    ${podStatusOutput}
+    ${countBforRestart}=    Run    kubectl get pods -n ${NAMESPACE} | grep Running | wc -l
+    ${podName}    Set Variable     adapter-open-olt
+    Restart Pod    ${NAMESPACE}    ${podName}
+    Wait Until Keyword Succeeds    ${waitforRestart}    2s    Validate Pod Status    ${podName}    ${NAMESPACE}
+    ...    Running
+    Repeat Sanity Test
+    ${podStatusOutput}=    Run    kubectl get pods -n ${NAMESPACE}
+    Log    ${podStatusOutput}
+    ${countAfterRestart}=    Run    kubectl get pods -n ${NAMESPACE} | grep Running | wc -l
+    Should Be Equal As Strings    ${countAfterRestart}    ${countBforRestart}
+    Log to console    Pod ${podName} restarted and sanity checks passed successfully
 
 Verify restart ofagent container after VOLTHA is operational
     [Documentation]    Restart ofagent container after VOLTHA is operational.
@@ -129,33 +160,6 @@
     ${countAfterRestart}=    Run    kubectl get pods -n ${NAMESPACE} | grep Running | wc -l
     Should Be Equal As Strings    ${countAfterRestart}    ${countBforRestart}
 
-Verify restart openolt-adapter container after VOLTHA is operational
-    [Documentation]    Restart openolt-adapter container after VOLTHA is operational.
-    ...    Prerequisite : ONUs are authenticated and pingable.
-    [Tags]    functional   VOL-1958   RestartPods
-    [Setup]    Run Keywords    Announce Message    START TEST RestartPods
-    ...        AND             Start Logging    RestartPods
-    [Teardown]    Run Keywords    Collect Logs
-    ...           AND             Stop Logging    RestartPods
-    ...           AND             Announce Message    END TEST RestartPods
-    ${waitforRestart}    Set Variable    120s
-    # Remove the Sanity Check after enabling first failure test (OLT Adapter Test)
-    #Run Keyword If    ${has_dataplane}    Clean Up Linux
-    #Wait Until Keyword Succeeds    ${timeout}    2s    Perform Sanity Test
-    ${podStatusOutput}=    Run    kubectl get pods -n ${NAMESPACE}
-    Log    ${podStatusOutput}
-    ${countBforRestart}=    Run    kubectl get pods -n ${NAMESPACE} | grep Running | wc -l
-    ${podName}    Set Variable     adapter-open-olt
-    Restart Pod    ${NAMESPACE}    ${podName}
-    Wait Until Keyword Succeeds    ${waitforRestart}    2s    Validate Pod Status    ${podName}    ${NAMESPACE}
-    ...    Running
-    Repeat Sanity Test
-    ${podStatusOutput}=    Run    kubectl get pods -n ${NAMESPACE}
-    Log    ${podStatusOutput}
-    ${countAfterRestart}=    Run    kubectl get pods -n ${NAMESPACE} | grep Running | wc -l
-    Should Be Equal As Strings    ${countAfterRestart}    ${countBforRestart}
-    Log to console    Pod ${podName} restarted and sanity checks passed successfully
-
 Check ONU adapter crash not forcing authentication again
     [Documentation]    After ONU adapter restart, checks wpa log for 'authentication started'
     ...    message count to make sure auth not started again and validates EAP status and ping.
diff --git a/tests/functional/Voltha_PODTests.robot b/tests/functional/Voltha_PODTests.robot
index 6f3ed05..35d5910 100644
--- a/tests/functional/Voltha_PODTests.robot
+++ b/tests/functional/Voltha_PODTests.robot
@@ -287,7 +287,7 @@
     ...    Perform enable on the ONUs, authentication check, volt-add-subscriber-access and
     ...    validate that the pings are successful
     ...    VOL-2284
-    [Tags]    functional    ATT_DisableEnableONU
+    [Tags]    functional    ATT_DisableEnableONU    released
     [Setup]    Run Keywords    Announce Message    START TEST ATT_DisableEnableONU
     ...        AND             Start Logging    ATT_DisableEnableONU
     [Teardown]    Run Keywords    Collect Logs
@@ -337,7 +337,7 @@
     ...    Disable and Delete the OLT
     ...    Create/Enable the same OLT again
     ...    Validate authentication/DHCP/E2E pings succeed for all the ONUs connected to the OLT
-    [Tags]    functional    DeleteOLT
+    [Tags]    functional    DeleteOLT    released
     [Setup]    Run Keywords    Announce Message    START TEST DeleteOLT
     ...        AND             Start Logging    DeleteOLT
     [Teardown]    Run Keywords    Collect Logs
@@ -355,7 +355,7 @@
     ...    This TC is to confirm that ONU removal is not impacting OLT
     ...    Devices will be removed during the execution of this TC
     ...    so calling setup at the end to add the devices back to avoid the confusion.
-    [Tags]    functional    VOL-2354    DisableDeleteONUandOLT
+    [Tags]    functional    VOL-2354    DisableDeleteONUandOLT    released
     [Setup]    Run Keywords    Announce Message    START TEST DisableDeleteONUandOLT
     ...        AND             Start Logging    DisableDeleteONUandOLT
     [Teardown]    Run Keywords    Collect Logs
