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.
      - Support for Java API plugins <https://www.gocd.org/releases/#17-2-0>
      were removed in GoCD 17.2.
      - 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 <https://www.gocd.org/releases/#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 <https://www.gocd.org/releases/#19-1-0>: Removal of support for
   DES encryption in config values (replaced with AES)
   - 20.2.0 <https://www.gocd.org/releases/#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
      <https://www.gocd.org/releases/#20-6-0>
   - 20.5.0 <https://www.gocd.org/releases/#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.

   - General docs:
   https://docs.gocd.org/current/installation/upgrading_go.html
   - DB Upgrade Docs for GoCD 20.5.0:
   
https://docs.gocd.org/current/installation/upgrading_go/upgrade_to_gocd_20.5.0.html
   - If you are trying to keep your entire configuration, pipeline history,
   artifacts etc in tact between upgrades you are probably going to want to
   have backups
   <https://docs.gocd.org/current/advanced_usage/one_click_backup.html> of
   *everything* (server config, your entire data folder/artifacts etc) and
   have ability to do experimental upgrades to various target versions in a
   separate environment.

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

On Thu, May 5, 2022 at 4:20 PM Nikita Singh <nikitasingh0...@gmail.com>
wrote:

> Hello, This is Nikita.
>
> I am looking at migrating GoServer from Linux Redhat V6 to Linux Redhat
> V8.
>
> Current Running Go Server Version on Redhat V6 :14.2.0
>
> Planning to upgrade Go Server Version on Redhat V8 : 22.1.0
>
> Require help on below queries:
>
> 1. Possible migration approach to be followed. Any available documentation
> for migration.
> 2. What capacity is the Database being used for GoServer?
>
> --
> You received this message because you are subscribed to the Google Groups
> "go-cd" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to go-cd+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/go-cd/18d5a9f8-f3c9-45da-9704-f23dfe990f67n%40googlegroups.com
> <https://groups.google.com/d/msgid/go-cd/18d5a9f8-f3c9-45da-9704-f23dfe990f67n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"go-cd" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to go-cd+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/go-cd/CAA1RwH9aSgspeMwX9twH3MN%2B6b%2B3eLyg3f88j_bpnd4tEPWSrQ%40mail.gmail.com.

Reply via email to