Upgrading Chef

Chef is a major part of omnibus-gitlab, and periodically needs to be updated. Follow these steps to upgrade to the latest version and verify the functionality.

Upgrade steps

  1. Create a new branch in omnibus-gitlab

    git switch -c upgrade-chef-to-X
    
  2. Update the appropriate software entries in config/software/. Change default_version to be the newer version we’re upgrading to for:

    1. chef-bin
    2. chef-gem
    3. chef-zero
    4. ohai
  3. Update entries in Gemfile to the new version. At a mininum, the chef and ohai entries will need to be updated.
  4. Update the bundle

    1. If this is a major version upgrade
    bundle update chef ohai
    
    1. If this is a minor version upgrade
    bundle update chef ohai --conservative
    

    It may be necessary to chase down errors related to dependencies being upgraded

  5. Commit the changes

    git add config/software/chef-{bin,gem,zero}.rb
    git add Gemfile{,.lock}
    git commit
    git push
    
  6. Ensure the pipelines pass on GitLab.com
  7. Trigger an EE package pipeline to ensure we get a gitlab-qa run
  8. When available, trigger an HA validation job
  9. Check QA jobs for the package pipeline, and the HA validation job, ensure pipelines are green, or any failures are unrelated.
  10. Push to omnibus-gitlab on dev.gitlab.org and ensure the package builds on all platforms
  11. Download a package to a dev environment, and verify you can upgrade from an older version of omnibus-gitlab, to the newer package
  12. Verify a Geo installation is successful using the newer package

Bonus points

  1. Read through the Changelog and Release notes, identify any improvements, new features, or bug fixes which may apply to omnibus and open follow up issues