in files/gitlab-ctl-commands/lib/gitlab_ctl/pg_upgrade.rb [175:233]
def parse_options(args)
options = {
tmp_dir: nil,
wait: true,
skip_unregister: false,
timeout: nil,
target_version: nil,
skip_disk_check: false,
leader: nil,
replica: nil,
standby_leader: nil
}
OptionParser.new do |opts|
opts.on('-tDIR', '--tmp-dir=DIR', 'Storage location for temporary data') do |t|
options[:tmp_dir] = t
end
opts.on('-w', '--no-wait', 'Do not wait before starting the upgrade process') do
options[:wait] = false
end
opts.on('-s', '--skip-unregister', 'Skip the attempt to unregister an HA secondary node. No-op in non-HA scenarios') do
options[:skip_unregister] = true
end
opts.on('-TTIMEOUT', '--timeout=TIMEOUT', 'Timeout in milliseconds for the execution of the underlying commands. Accepts duration format such as 1d2h3m4s5ms.') do |t|
i = GitlabCtl::Util.parse_duration(t)
options[:timeout] = i.positive? ? i : nil
end
opts.on('-VVERSION', '--target-version=VERSION', 'The explicit major version to upgrade or downgrade to') do |v|
options[:target_version] = v
end
opts.on('--skip-disk-check', 'Skip checking that there is enough free disk space to perform upgrade') do
options[:skip_disk_check] = true
end
opts.on('--leader', 'Patroni only. Force leader upgrade procedure.') do
options[:leader] = true
options[:replica] = false
end
opts.on('--replica', 'Patroni only. Force replica upgrade procedure.') do
options[:replica] = true
options[:leader] = false
end
opts.on('--standby-leader', 'Patroni only. Force standby-leader upgrade procedure.') do
options[:leader] = false
options[:replica] = false
options[:standby_leader] = true
end
end.parse!(args)
options
end