From 89af496e6e48440b41829a45a0ff94189d2e6de9 Mon Sep 17 00:00:00 2001 From: olegz-codefresh Date: Fri, 12 Feb 2021 16:08:26 +0200 Subject: [PATCH] CR-2946 --- .../cli/commands/gitops/argocd/upgrade.js | 9 ++++ .../cli/commands/gitops/codefresh/upgrade.js | 9 ++++ .../cli/commands/gitops/common/upgrade.js | 44 +++++++++++++++++ .../cli/commands/gitops/upgrade.cmd.js | 47 +++++-------------- package.json | 2 +- 5 files changed, 74 insertions(+), 37 deletions(-) create mode 100644 lib/interface/cli/commands/gitops/argocd/upgrade.js create mode 100644 lib/interface/cli/commands/gitops/codefresh/upgrade.js create mode 100644 lib/interface/cli/commands/gitops/common/upgrade.js diff --git a/lib/interface/cli/commands/gitops/argocd/upgrade.js b/lib/interface/cli/commands/gitops/argocd/upgrade.js new file mode 100644 index 000000000..12b9a86cd --- /dev/null +++ b/lib/interface/cli/commands/gitops/argocd/upgrade.js @@ -0,0 +1,9 @@ +const gitopsUpgrader = require('../common/upgrade'); + +class ArgoCDUpgrade { + // eslint-disable-next-line class-methods-use-this + async upgrade(argv) { + return gitopsUpgrader.upgrade(argv); + } +} +module.exports = new ArgoCDUpgrade(); diff --git a/lib/interface/cli/commands/gitops/codefresh/upgrade.js b/lib/interface/cli/commands/gitops/codefresh/upgrade.js new file mode 100644 index 000000000..4516311ae --- /dev/null +++ b/lib/interface/cli/commands/gitops/codefresh/upgrade.js @@ -0,0 +1,9 @@ +const gitopsUpgrader = require('../common/upgrade'); + +class CodefreshGitopsUpgrade { + // eslint-disable-next-line class-methods-use-this + async upgrade(argv) { + return gitopsUpgrader.upgrade(argv); + } +} +module.exports = new CodefreshGitopsUpgrade(); diff --git a/lib/interface/cli/commands/gitops/common/upgrade.js b/lib/interface/cli/commands/gitops/common/upgrade.js new file mode 100644 index 000000000..d8984cc8c --- /dev/null +++ b/lib/interface/cli/commands/gitops/common/upgrade.js @@ -0,0 +1,44 @@ +const { downloadProvider } = require('../../hybrid/helper'); +const { Runner, components } = require('../../../../../binary'); +const _ = require('lodash'); + +class GitopsUpgrader { + // eslint-disable-next-line class-methods-use-this + async upgrade(argv) { + const { + provider, + 'kube-config-path': kubeConfigPath, + 'kube-namespace': kubeNamespace, + 'kube-context-name': kubeContextName, + 'in-cluster': inCluster, + } = argv; + + const binLocation = await downloadProvider({ provider }); + const componentRunner = new Runner(binLocation); + + const commands = [ + 'update', + ]; + + if (kubeConfigPath) { + commands.push('--kubeconfig'); + commands.push(kubeConfigPath); + } + if (kubeNamespace) { + commands.push('--kube-namespace'); + commands.push(kubeNamespace); + } + if (kubeContextName) { + commands.push('--kube-context-name'); + commands.push(kubeContextName); + } + if (inCluster) { + commands.push('--in-cluster'); + commands.push('true'); + } + + await componentRunner.run(components.gitops[provider], commands); + } +} + +module.exports = new GitopsUpgrader(); diff --git a/lib/interface/cli/commands/gitops/upgrade.cmd.js b/lib/interface/cli/commands/gitops/upgrade.cmd.js index d63f4ecb6..ef22854ca 100644 --- a/lib/interface/cli/commands/gitops/upgrade.cmd.js +++ b/lib/interface/cli/commands/gitops/upgrade.cmd.js @@ -1,8 +1,12 @@ const Command = require('../../Command'); - const upgradeRoot = require('../root/upgrade.cmd'); -const { downloadProvider } = require('../hybrid/helper'); -const { Runner, components } = require('../../../../binary'); +const codefreshProvider = require('./codefresh/upgrade'); +const argocdAgentProvider = require('./argocd/upgrade'); + +const PROVIDERS = { + codefresh: codefreshProvider, + 'argocd-agent': argocdAgentProvider, +}; const command = new Command({ root: false, @@ -18,7 +22,7 @@ const command = new Command({ yargs .positional('provider', { describe: 'Gitops provider', - choices: ['argocd-agent'], + choices: Object.keys(PROVIDERS), required: true, }) .option('kube-config-path', { @@ -41,39 +45,10 @@ const command = new Command({ ); }, handler: async (argv) => { - const { - provider, - 'kube-config-path': kubeConfigPath, - 'kube-namespace': kubeNamespace, - 'kube-context-name': kubeContextName, - 'in-cluster': inCluster, - } = argv; - - const binLocation = await downloadProvider({ provider }); - const componentRunner = new Runner(binLocation); - - const commands = [ - 'update', - ]; - - if (kubeConfigPath) { - commands.push('--kubeconfig'); - commands.push(kubeConfigPath); - } - if (kubeNamespace) { - commands.push('--kube-namespace'); - commands.push(kubeNamespace); - } - if (kubeContextName) { - commands.push('--kube-context-name'); - commands.push(kubeContextName); - } - if (inCluster) { - commands.push('--in-cluster'); - commands.push('true'); - } + const { provider } = argv; - await componentRunner.run(components.gitops[provider], commands); + const providerInstaller = PROVIDERS[provider]; + return providerInstaller.upgrade(argv); }, }); diff --git a/package.json b/package.json index bd314790e..a26a1ac97 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "codefresh", - "version": "0.75.1", + "version": "0.75.2", "description": "Codefresh command line utility", "main": "index.js", "preferGlobal": true,