Switch release channel

This section describes how to switch from release-1.2 to release-1.3 release channel for Rok.

  1. Go to your GitOps repository, inside your rok-tools management environment:

    root@rok-tools:/# cd ~/ops/deployments
    
  2. Verify that you currently on the release-1.2 branch:

    root@rok-tools:/# git rev-parse --abbrev-ref HEAD
    release-1.2
    
  3. Get the current status of your GitOps repository and verify that your local repository is clean:

    root@rok-tools:~/ops/deployments# git status
    On branch release-1.2
    nothing to commit, working tree clean
    
  4. Ensure that you are currently following the release-1.2 release channel:

    root@rok-tools::~/ops/deployments# git rev-parse --abbrev-ref --symbolic-full-name @{u}
    origin/release-1.2
    
  5. Switch to the release-1.3 local branch:

    root@rok-tools::~/ops/deployments# git checkout -b release-1.3
    
  6. Switch to the release-1.3 release channel and rebase your work on top of it:

    root@rok-tools:~/ops/deployments# git \
    >     -c merge.directoryRenames=false \
    >     -c merge.renameLimit=99999 \
    >     rebase -Xtheirs --onto origin/release-1.3 origin/release-1.2
    
    Troubleshooting
    CONFLICT (modify/delete)

    Rebasing your work may cause conflicts when you have modified a file that has been removed from the latest version of Arrikto manifests. In such a case the rebase process will fail with:

    CONFLICT (modify/delete): path/to/file deleted in origin/release-1.3 and modified in HEAD~X. Version HEAD~X of path/to/file left in tree.
    
    1. Delete those files:

      root@rok-tools:~/ops/deployments# git status --porcelain | \
      >     awk '{if ($1=="DU") print $2}' | \
      >     xargs git rm
      
    2. Continue the rebase process:

      root@rok-tools:~/ops/deployments# git rebase --continue
      
  7. Configure your local branch to track the new release channel:

    root@rok-tools:~/ops/deployments# git branch --set-upstream-to=origin/release-1.3