Skip to content

Commit edfd00c

Browse files
author
Oleg Sucharevich
authored
SAAS-5545 support secret-store.kubernetes (#406)
1 parent b1c1eec commit edfd00c

File tree

5 files changed

+106
-116
lines changed

5 files changed

+106
-116
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
const Command = require('../../../../Command');
2+
const createContext = require('../../create.cmd');
3+
4+
const usage = 'Secret-Store context are used during pipeline execution as API to resolve variables that are parse of Codefresh';
5+
6+
const command = new Command({
7+
command: 'secret-store',
8+
parent: createContext,
9+
description: 'Create a secret-store context [type]',
10+
usage,
11+
webDocs: {
12+
category: 'Create Context',
13+
subCategory: 'Secret-Store',
14+
title: 'Create Secret-Store Context',
15+
},
16+
builder: (yargs) => {
17+
yargs
18+
.option('sharing-policy', {
19+
describe: 'Set the sharing policy for secret-store context',
20+
choices: ['AccountAdmins', 'AllUsersInAccount'],
21+
default: 'AccountAdmins',
22+
});
23+
return yargs;
24+
},
25+
handler: async (argv) => {
26+
yargs.showHelp();
27+
},
28+
});
29+
30+
module.exports = command;
31+
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
const debug = require('debug')('codefresh:cli:create:context:secret-store:kubernetes');
2+
const Command = require('../../../../../Command');
3+
const CFError = require('cf-errors');
4+
const cmd = require('../base.cmd');
5+
const { sdk } = require('../../../../../../../logic');
6+
7+
const command = new Command({
8+
command: 'kubernetes <name>',
9+
parent: cmd,
10+
description: 'Create a secret-store Kubernetes context',
11+
usage: cmd.usage,
12+
webDocs: {
13+
category: 'Create Secret-Store Context',
14+
subCategory: 'kubernetes',
15+
title: 'kubernetes',
16+
weight: 10,
17+
},
18+
builder: (yargs) => {
19+
yargs
20+
.option('cluster', {
21+
describe: 'Name of the Kubernetes clsuter as it saved in Codefresh',
22+
required: true,
23+
})
24+
.option('namespace', {
25+
describe: 'Name of the Kubernetes namespace',
26+
required: true,
27+
default: 'default',
28+
})
29+
.option('resource-type', {
30+
describe: 'Type of the resource in Kubernetes',
31+
required: true,
32+
choices: ['secret', 'configmap'],
33+
})
34+
.option('resource-name', {
35+
describe: 'Name of the resource in Kubernetes',
36+
required: true,
37+
});
38+
return yargs;
39+
},
40+
handler: async (argv) => {
41+
const data = {
42+
apiVersion: 'v1',
43+
kind: 'context',
44+
metadata: {
45+
name: argv.name,
46+
},
47+
spec: {
48+
type: 'secret-store.kubernetes',
49+
data: {
50+
sharingPolicy: argv.sharingPolicy,
51+
resourceType: argv.resourceType,
52+
resourceName: argv.resourceName,
53+
cluster: argv.cluster,
54+
namespace: argv.namespace,
55+
},
56+
},
57+
};
58+
59+
60+
if (!data.metadata.name || !data.spec.type) {
61+
throw new CFError('Name and type must be provided');
62+
}
63+
await sdk.contexts.create(data);
64+
console.log(`Context: ${data.metadata.name} created`);
65+
},
66+
});
67+
68+
module.exports = command;

lib/interface/cli/commands/context/get.cmd.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ const command = new Command({
2626
choices: [
2727
'config', 'git.bitbucket-server', 'git.bitbucket', 'git.github', 'git.gitlab',
2828
'git.stash', 'helm-repository', 'secret-yaml', 'secret', 'storage.gc', 'storage.s3', 'yaml',
29+
'secret-store.kubernetes',
2930
],
3031
})
3132
.option('decrypt', {

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.42.2",
3+
"version": "0.43.0",
44
"description": "Codefresh command line utility",
55
"main": "index.js",
66
"preferGlobal": true,

yarn.lock

Lines changed: 5 additions & 115 deletions
Original file line numberDiff line numberDiff line change
@@ -94,11 +94,6 @@ abab@^2.0.0:
9494
resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.3.tgz#623e2075e02eb2d3f2475e49f99c91846467907a"
9595
integrity sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg==
9696

97-
abbrev@1:
98-
version "1.1.1"
99-
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
100-
integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
101-
10297
acorn-globals@^4.1.0:
10398
version "4.3.4"
10499
resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7"
@@ -960,7 +955,7 @@ check-more-types@2.24.0:
960955
resolved "https://registry.yarnpkg.com/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600"
961956
integrity sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=
962957

963-
chownr@^1.0.1, chownr@^1.1.1:
958+
chownr@^1.0.1:
964959
version "1.1.3"
965960
resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.3.tgz#42d837d5239688d55f303003a508230fa6727142"
966961
integrity sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==
@@ -1569,11 +1564,6 @@ detect-indent@^4.0.0:
15691564
dependencies:
15701565
repeating "^2.0.0"
15711566

1572-
detect-libc@^1.0.2:
1573-
version "1.0.3"
1574-
resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
1575-
integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=
1576-
15771567
detect-newline@^2.1.0:
15781568
version "2.1.0"
15791569
resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2"
@@ -2378,13 +2368,6 @@ fs-extra@~6.0.1:
23782368
jsonfile "^4.0.0"
23792369
universalify "^0.1.0"
23802370

2381-
fs-minipass@^1.2.5:
2382-
version "1.2.7"
2383-
resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7"
2384-
integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==
2385-
dependencies:
2386-
minipass "^2.6.0"
2387-
23882371
fs.realpath@^1.0.0:
23892372
version "1.0.0"
23902373
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
@@ -2818,7 +2801,7 @@ hugo-cli@^0.5.4:
28182801
request "^2.60.0"
28192802
semver "^5.3.0"
28202803

2821-
iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.4, iconv-lite@~0.4.13:
2804+
iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@~0.4.13:
28222805
version "0.4.24"
28232806
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
28242807
integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
@@ -2830,13 +2813,6 @@ ieee754@^1.1.4:
28302813
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84"
28312814
integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==
28322815

2833-
ignore-walk@^3.0.1:
2834-
version "3.0.3"
2835-
resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37"
2836-
integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==
2837-
dependencies:
2838-
minimatch "^3.0.4"
2839-
28402816
ignore@^3.3.3, ignore@^3.3.5:
28412817
version "3.3.10"
28422818
resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043"
@@ -4209,21 +4185,6 @@ minimist@~0.0.1:
42094185
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
42104186
integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=
42114187

4212-
minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0:
4213-
version "2.9.0"
4214-
resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6"
4215-
integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==
4216-
dependencies:
4217-
safe-buffer "^5.1.2"
4218-
yallist "^3.0.0"
4219-
4220-
minizlib@^1.2.1:
4221-
version "1.3.3"
4222-
resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d"
4223-
integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==
4224-
dependencies:
4225-
minipass "^2.9.0"
4226-
42274188
mixin-deep@^1.2.0:
42284189
version "1.3.2"
42294190
resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566"
@@ -4330,15 +4291,6 @@ natural-compare@^1.4.0:
43304291
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
43314292
integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
43324293

4333-
needle@^2.2.1:
4334-
version "2.4.0"
4335-
resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c"
4336-
integrity sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg==
4337-
dependencies:
4338-
debug "^3.2.6"
4339-
iconv-lite "^0.4.4"
4340-
sax "^1.2.4"
4341-
43424294
neo-async@^2.6.0:
43434295
version "2.6.1"
43444296
resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c"
@@ -4373,35 +4325,11 @@ node-notifier@^5.2.1:
43734325
shellwords "^0.1.1"
43744326
which "^1.3.0"
43754327

4376-
node-pre-gyp@*:
4377-
version "0.14.0"
4378-
resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz#9a0596533b877289bcad4e143982ca3d904ddc83"
4379-
integrity sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA==
4380-
dependencies:
4381-
detect-libc "^1.0.2"
4382-
mkdirp "^0.5.1"
4383-
needle "^2.2.1"
4384-
nopt "^4.0.1"
4385-
npm-packlist "^1.1.6"
4386-
npmlog "^4.0.2"
4387-
rc "^1.2.7"
4388-
rimraf "^2.6.1"
4389-
semver "^5.3.0"
4390-
tar "^4.4.2"
4391-
43924328
node-status-codes@^1.0.0:
43934329
version "1.0.0"
43944330
resolved "https://registry.yarnpkg.com/node-status-codes/-/node-status-codes-1.0.0.tgz#5ae5541d024645d32a58fcddc9ceecea7ae3ac2f"
43954331
integrity sha1-WuVUHQJGRdMqWPzdyc7s6nrjrC8=
43964332

4397-
nopt@^4.0.1:
4398-
version "4.0.1"
4399-
resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d"
4400-
integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=
4401-
dependencies:
4402-
abbrev "1"
4403-
osenv "^0.1.4"
4404-
44054333
normalize-package-data@^2.3.2, "normalize-package-data@~1.0.1 || ^2.0.0":
44064334
version "2.5.0"
44074335
resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
@@ -4419,18 +4347,6 @@ normalize-path@^2.0.1, normalize-path@^2.1.1:
44194347
dependencies:
44204348
remove-trailing-separator "^1.0.1"
44214349

4422-
npm-bundled@^1.0.1:
4423-
version "1.1.1"
4424-
resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b"
4425-
integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==
4426-
dependencies:
4427-
npm-normalize-package-bin "^1.0.1"
4428-
4429-
npm-normalize-package-bin@^1.0.1:
4430-
version "1.0.1"
4431-
resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2"
4432-
integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==
4433-
44344350
"npm-package-arg@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0":
44354351
version "6.1.1"
44364352
resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-6.1.1.tgz#02168cb0a49a2b75bf988a28698de7b529df5cb7"
@@ -4441,14 +4357,6 @@ npm-normalize-package-bin@^1.0.1:
44414357
semver "^5.6.0"
44424358
validate-npm-package-name "^3.0.0"
44434359

4444-
npm-packlist@^1.1.6:
4445-
version "1.4.7"
4446-
resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.7.tgz#9e954365a06b80b18111ea900945af4f88ed4848"
4447-
integrity sha512-vAj7dIkp5NhieaGZxBJB8fF4R0078rqsmhJcAfXZ6O7JJhjhPK96n5Ry1oZcfLXgfun0GWTZPOxaEyqv8GBykQ==
4448-
dependencies:
4449-
ignore-walk "^3.0.1"
4450-
npm-bundled "^1.0.1"
4451-
44524360
npm-registry-client@^8.0.0:
44534361
version "8.6.0"
44544362
resolved "https://registry.yarnpkg.com/npm-registry-client/-/npm-registry-client-8.6.0.tgz#7f1529f91450732e89f8518e0f21459deea3e4c4"
@@ -4508,7 +4416,7 @@ npm-utils@2.0.0:
45084416
repo-url "1.0.1"
45094417
verbal-expressions "0.3.0"
45104418

4511-
"npmlog@2 || ^3.1.0 || ^4.0.0", npmlog@^4.0.2:
4419+
"npmlog@2 || ^3.1.0 || ^4.0.0":
45124420
version "4.1.2"
45134421
resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
45144422
integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==
@@ -4692,7 +4600,7 @@ os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1, os-tmpdir@~1.0.2:
46924600
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
46934601
integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
46944602

4695-
osenv@^0.1.0, osenv@^0.1.4, osenv@^0.1.5:
4603+
osenv@^0.1.0, osenv@^0.1.5:
46964604
version "0.1.5"
46974605
resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410"
46984606
integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==
@@ -5154,7 +5062,7 @@ randomatic@^3.0.0:
51545062
kind-of "^6.0.0"
51555063
math-random "^1.0.1"
51565064

5157-
rc@^1.0.1, rc@^1.1.2, rc@^1.1.6, rc@^1.2.7:
5065+
rc@^1.0.1, rc@^1.1.2, rc@^1.1.6:
51585066
version "1.2.8"
51595067
resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
51605068
integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
@@ -6142,19 +6050,6 @@ tar-stream@^1.1.2, tar-stream@^1.5.2:
61426050
to-buffer "^1.1.1"
61436051
xtend "^4.0.0"
61446052

6145-
tar@^4.4.2:
6146-
version "4.4.13"
6147-
resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525"
6148-
integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==
6149-
dependencies:
6150-
chownr "^1.1.1"
6151-
fs-minipass "^1.2.5"
6152-
minipass "^2.8.6"
6153-
minizlib "^1.2.1"
6154-
mkdirp "^0.5.0"
6155-
safe-buffer "^5.1.2"
6156-
yallist "^3.0.3"
6157-
61586053
term-size@^1.2.0:
61596054
version "1.2.0"
61606055
resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69"
@@ -6752,11 +6647,6 @@ yallist@^2.1.2:
67526647
resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
67536648
integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=
67546649

6755-
yallist@^3.0.0, yallist@^3.0.3:
6756-
version "3.1.1"
6757-
resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
6758-
integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
6759-
67606650
yargs-parser@^13.0.0:
67616651
version "13.1.1"
67626652
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0"

0 commit comments

Comments
 (0)