Skip to content

Commit 916b2c1

Browse files
Feature/andrii/saas 6026 set helm version (#413)
* set helm version * bump version
1 parent 868e6b9 commit 916b2c1

File tree

4 files changed

+132
-1
lines changed

4 files changed

+132
-1
lines changed
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
let setHelmVersionCmd = require('./set-helm-version.cmd');
2+
3+
setHelmVersionCmd.requiresAuthentication = false;
4+
5+
setHelmVersionCmd = setHelmVersionCmd.toCommand();
6+
7+
jest.mock('../../helpers/helm');
8+
jest.mock('../../helpers/logs');
9+
jest.spyOn(process, 'exit').mockImplementation();
10+
11+
const request = require('requestretry');
12+
13+
const DEFAULT_RESPONSE = request.__defaultResponse();
14+
15+
describe('helm commands', () => {
16+
beforeEach(async () => {
17+
request.__reset();
18+
request.mockClear();
19+
await configureSdk(); // eslint-disable-line
20+
});
21+
22+
describe('set-helm-version', () => {
23+
24+
it('should set version', async () => {
25+
const argv = {
26+
cluster: 'selector',
27+
version: '3',
28+
};
29+
await setHelmVersionCmd.handler(argv);
30+
await verifyResponsesReturned([DEFAULT_RESPONSE]); // eslint-disable-line
31+
});
32+
33+
it('should throw error for wrong version', async () => {
34+
const argv = {
35+
cluster: 'selector',
36+
version: '1',
37+
};
38+
try {
39+
await setHelmVersionCmd.handler(argv);
40+
} catch (error) {
41+
expect(error.message).toBe('Wrong version value');
42+
}
43+
});
44+
});
45+
});
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
const Command = require('../../Command');
2+
const { sdk } = require('../../../../logic');
3+
const Output = require('../../../../output/Output');
4+
5+
const install = new Command({
6+
root: true,
7+
command: 'set-helm-version <cluster> <version>',
8+
description: 'Set version of Helm used for specified cluster',
9+
webDocs: {
10+
category: 'Predefined Pipelines',
11+
title: 'Set version of Helm',
12+
weight: 20,
13+
},
14+
builder: (yargs) => {
15+
return yargs
16+
.positional('cluster', {
17+
describe: 'Cluster name on integrations page',
18+
required: true,
19+
})
20+
.positional('version', {
21+
describe: 'Major part of helm version (2 | 3)',
22+
type: 'string',
23+
required: true,
24+
})
25+
.example('codefresh set-helm-version cluster 2', 'Use helm2')
26+
.example('codefresh set-helm-version cluster 3', 'Use helm3');
27+
},
28+
handler: async (argv) => {
29+
try {
30+
if (!['2', '3'].includes(argv.version)) {
31+
throw new Error('Wrong version value');
32+
}
33+
const helm3 = argv.version === '3';
34+
35+
const res = await sdk.clusters.helmVersion.update({ clusterId: argv.cluster, helm3 });
36+
console.log('Helm version was set successfully', res);
37+
process.exit();
38+
} catch (err) {
39+
Output.printError(err);
40+
process.exit(1);
41+
}
42+
},
43+
});
44+
45+
module.exports = install;

openapi.json

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2278,6 +2278,47 @@
22782278
"x-sdk-interface": "clusters.list"
22792279
}
22802280
},
2281+
"/clusters/{clusterId}/helm-version": {
2282+
"post": {
2283+
"parameters": [
2284+
{
2285+
"in": "path",
2286+
"name": "clusterId",
2287+
"schema": {
2288+
"type": "string"
2289+
},
2290+
"required": true
2291+
}
2292+
],
2293+
"requestBody": {
2294+
"content": {
2295+
"application/json": {
2296+
"schema": {
2297+
"properties": {
2298+
"helm3": {
2299+
"type": "boolean"
2300+
}
2301+
},
2302+
"type": "object"
2303+
}
2304+
}
2305+
},
2306+
"description": "Helm version",
2307+
"required": true
2308+
},
2309+
"responses": {
2310+
"200": {
2311+
"description": "ok"
2312+
}
2313+
},
2314+
"tags": [
2315+
"clusters"
2316+
],
2317+
"operationId": "helm-version",
2318+
"summary": "Set helm version",
2319+
"x-sdk-interface": "clusters.helmVersion.update"
2320+
}
2321+
},
22812322
"/clusters/{provider}/cluster/{id}": {
22822323
"delete": {
22832324
"responses": {

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "codefresh",
3-
"version": "0.43.6",
3+
"version": "0.43.7",
44

55
"description": "Codefresh command line utility",
66
"main": "index.js",

0 commit comments

Comments
 (0)