Hi Nikita
This is a very large upgrade distance, basically spanning the entire open source lifetime of GoCD :-) I imagine this might be challenging as this is over 8 years of change.
Generally GoCD is designed to automatically upgrade its own database schemas and configurations between releases, however there are occasionally deprecations and then feature removals that might require manual intervention. That can extend to plugin changes too.
I would recommend that you scan through the release notes at
https://www.gocd.org/releases/ and look out for any major deltas (especially "breaking changes") that might affect your usage and that might require manual action. Some things I can think of that you will want to be aware of
- General: Any plugins you are using, and required updates to these.
- General: Any direct GoCD API usage you have, there is likely major change to this.
- General: You should review any customisation you have done to GoCD's start-up arguments/properties as these may have changed.
- General: You'll need to consider what agent variants and versions you have.
- If your agent versions are also very old, they are quite likely to have issues bootstrapping from the GoCD server, so you'll need to have an agent upgrade plan too, especially if you are trying to minimise downtime.
- 17.5.0+: Review the authentication mechanism for your users. There have been multiple changes to the way GoCD authentication/authorization have been done (especially for passwordfile and LDAP being moved to a plugin style) as well as plugin API changes over time. Although I believe the intent was for it to be an automatic upgrade when initially moved to be via plugin, I'm not sure it would work for such a large delta between releases.
- 19.1.0: Removal of support for DES encryption in config values (replaced with AES)
- 20.2.0: TLS support is turned off by default. Assuming you use TLS/HTTPS, this will require you to introduce a reverse proxy or other mechanism into your infrastructure in front of GoCD to terminate TLS on.
- Support was completely removed in 20.6.0
- 20.5.0: A one-time manual intervention for database migration is required at this version to convert your database. You can also switch DB types here (e.g H2DB to PostgreSQL)
In general, you are probably going to have to do this as multiple steps I imagine, with some degree of verification at each step. Perhaps 14.2.0 -> something -> 20.4.0 -> 20.5.0 -> 22.1.0. If your usage is simple, you can try going straight to 20.4.0 in a test environment and see how it goes, but I imagine that will depend on the complexity of your usage and how "big" your GoCD server is (how many pipelines, types of materials, plugins you are using, how many agents of what types). It's probably difficult to advise without more details of your setup, and after you have reviewed release notes for possible issues.
I'm not sure about your question on the capacity of the database. What database type is your GoCD server using? If it is the open source version of 14.2.0 you have, it is probably just using the in-built H2 database which is stored on the file-system alongside other server metadata such as pipeline artifacts, logs etc, so capacity isn't really relevant.
-Chad