@leverege/build-tools 2.1.3 → 2.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/README.md +12 -11
- package/lib/web/dnsify/CloudflareAPI.js +12 -4
- package/lib/web/dnsify/index.js +4 -4
- package/lib/web/packleate/Packleator.js +37 -15
- package/lib/web/packleate/index.js +4 -4
- package/package.json +2 -2
- package/src/helmup +32 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
All notable changes to this project will be documented in this file.
|
|
3
3
|
|
|
4
|
+
## [2.1.5] - 2020-03-08
|
|
5
|
+
### Updated
|
|
6
|
+
- (Helmup) Simplified Timescale installation process
|
|
7
|
+
|
|
4
8
|
## [2.0.0] - 2020-02-12
|
|
5
9
|
### Added
|
|
6
10
|
- (encrypt/decrypt) Allow for external KMS (BREAKING!!!)
|
package/README.md
CHANGED
|
@@ -12,26 +12,27 @@ npm install -g @leverege/build-tools
|
|
|
12
12
|
|
|
13
13
|
## Tool Descriptions
|
|
14
14
|
|
|
15
|
+
### General Tools:
|
|
15
16
|
* **circleate**: bootstrap .circleci config repo
|
|
16
17
|
* **decrypt-secrets**: decrypts secrets (env, service accounts)
|
|
17
18
|
* **dockreate**: bootstrap docker repo
|
|
18
19
|
* **encrypt-secrets**: encrypts secrets (env, service accounts)
|
|
19
20
|
* **packleate**: DESCRIPTION
|
|
20
21
|
|
|
21
|
-
Helm Helpers:
|
|
22
|
-
* **overwhelm**:
|
|
22
|
+
### Helm Helpers:
|
|
23
|
+
* **overwhelm**: A k8s context helper and yaml replacer *OVH:<REPLACE_ME>*
|
|
23
24
|
* **helmify**: DESCRIPTION
|
|
24
|
-
* **helmup**:
|
|
25
|
-
* **helmdn**:
|
|
25
|
+
* **helmup**: A context safe helm deployment tool.
|
|
26
|
+
* **helmdn**: A destroyer of helm deplotments (danger zone).
|
|
26
27
|
|
|
27
|
-
Kubernetes Helpers:
|
|
28
|
-
* **k8x**:
|
|
28
|
+
### Kubernetes Helpers:
|
|
29
|
+
* **k8x**: A script to help run commands on active pods in a k8s cluster.
|
|
29
30
|
|
|
30
|
-
Git Helpers:
|
|
31
|
-
* **git-tar**:
|
|
32
|
-
* **dirty-git**:
|
|
33
|
-
* **prune-git**:
|
|
34
|
-
* **pull-git**:
|
|
31
|
+
### Git Helpers:
|
|
32
|
+
* **git-tar**: A git safety net which is described [here on github](https://github.com/jphelps413/git-tar)
|
|
33
|
+
* **dirty-git**: Feed it a list of directories and it will show which are locally modified or stashed.
|
|
34
|
+
* **prune-git**: Performs maintenance on a list of git repositories.
|
|
35
|
+
* **pull-git**: Walks a list of git repos, pulling each if they are clean.
|
|
35
36
|
|
|
36
37
|
## Authors
|
|
37
38
|
|
|
@@ -47,7 +47,9 @@ var path = require('path');
|
|
|
47
47
|
var _require = require('util'),
|
|
48
48
|
promisify = _require.promisify;
|
|
49
49
|
|
|
50
|
-
var CloudflareAPI =
|
|
50
|
+
var CloudflareAPI =
|
|
51
|
+
/*#__PURE__*/
|
|
52
|
+
function () {
|
|
51
53
|
function CloudflareAPI(options) {
|
|
52
54
|
_classCallCheck(this, CloudflareAPI);
|
|
53
55
|
|
|
@@ -69,7 +71,9 @@ var CloudflareAPI = /*#__PURE__*/function () {
|
|
|
69
71
|
_createClass(CloudflareAPI, [{
|
|
70
72
|
key: "decrypt",
|
|
71
73
|
value: function () {
|
|
72
|
-
var _decrypt = _asyncToGenerator(
|
|
74
|
+
var _decrypt = _asyncToGenerator(
|
|
75
|
+
/*#__PURE__*/
|
|
76
|
+
regeneratorRuntime.mark(function _callee() {
|
|
73
77
|
var projectId,
|
|
74
78
|
keyRingId,
|
|
75
79
|
cryptoKeyId,
|
|
@@ -159,7 +163,9 @@ var CloudflareAPI = /*#__PURE__*/function () {
|
|
|
159
163
|
}, {
|
|
160
164
|
key: "deleteSecrets",
|
|
161
165
|
value: function () {
|
|
162
|
-
var _deleteSecrets = _asyncToGenerator(
|
|
166
|
+
var _deleteSecrets = _asyncToGenerator(
|
|
167
|
+
/*#__PURE__*/
|
|
168
|
+
regeneratorRuntime.mark(function _callee2() {
|
|
163
169
|
var deleteFile;
|
|
164
170
|
return regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
165
171
|
while (1) {
|
|
@@ -186,7 +192,9 @@ var CloudflareAPI = /*#__PURE__*/function () {
|
|
|
186
192
|
}, {
|
|
187
193
|
key: "createDNSRecord",
|
|
188
194
|
value: function () {
|
|
189
|
-
var _createDNSRecord = _asyncToGenerator(
|
|
195
|
+
var _createDNSRecord = _asyncToGenerator(
|
|
196
|
+
/*#__PURE__*/
|
|
197
|
+
regeneratorRuntime.mark(function _callee3() {
|
|
190
198
|
return regeneratorRuntime.wrap(function _callee3$(_context3) {
|
|
191
199
|
while (1) {
|
|
192
200
|
switch (_context3.prev = _context3.next) {
|
package/lib/web/dnsify/index.js
CHANGED
|
@@ -5,8 +5,6 @@ require("core-js/modules/es.symbol");
|
|
|
5
5
|
|
|
6
6
|
require("core-js/modules/es.array.filter");
|
|
7
7
|
|
|
8
|
-
require("core-js/modules/es.array.for-each");
|
|
9
|
-
|
|
10
8
|
require("core-js/modules/es.object.get-own-property-descriptor");
|
|
11
9
|
|
|
12
10
|
require("core-js/modules/es.object.get-own-property-descriptors");
|
|
@@ -23,7 +21,7 @@ require("regenerator-runtime/runtime");
|
|
|
23
21
|
|
|
24
22
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
25
23
|
|
|
26
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(
|
|
24
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
27
25
|
|
|
28
26
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
29
27
|
|
|
@@ -97,7 +95,9 @@ function main() {
|
|
|
97
95
|
}
|
|
98
96
|
|
|
99
97
|
function _main() {
|
|
100
|
-
_main = _asyncToGenerator(
|
|
98
|
+
_main = _asyncToGenerator(
|
|
99
|
+
/*#__PURE__*/
|
|
100
|
+
regeneratorRuntime.mark(function _callee() {
|
|
101
101
|
var CF;
|
|
102
102
|
return regeneratorRuntime.wrap(function _callee$(_context) {
|
|
103
103
|
while (1) {
|
|
@@ -6,8 +6,6 @@ require("core-js/modules/es.array.concat");
|
|
|
6
6
|
|
|
7
7
|
require("core-js/modules/es.array.filter");
|
|
8
8
|
|
|
9
|
-
require("core-js/modules/es.array.for-each");
|
|
10
|
-
|
|
11
9
|
require("core-js/modules/es.array.index-of");
|
|
12
10
|
|
|
13
11
|
require("core-js/modules/es.array.iterator");
|
|
@@ -48,7 +46,7 @@ function _asyncToGenerator(fn) { return function () { var self = this, args = ar
|
|
|
48
46
|
|
|
49
47
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
50
48
|
|
|
51
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(
|
|
49
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
52
50
|
|
|
53
51
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
54
52
|
|
|
@@ -74,7 +72,9 @@ var tar = require('tar');
|
|
|
74
72
|
|
|
75
73
|
var semver = require('semver');
|
|
76
74
|
|
|
77
|
-
var Packleator =
|
|
75
|
+
var Packleator =
|
|
76
|
+
/*#__PURE__*/
|
|
77
|
+
function () {
|
|
78
78
|
function Packleator(options) {
|
|
79
79
|
_classCallCheck(this, Packleator);
|
|
80
80
|
|
|
@@ -97,7 +97,9 @@ var Packleator = /*#__PURE__*/function () {
|
|
|
97
97
|
_createClass(Packleator, [{
|
|
98
98
|
key: "run",
|
|
99
99
|
value: function () {
|
|
100
|
-
var _run = _asyncToGenerator(
|
|
100
|
+
var _run = _asyncToGenerator(
|
|
101
|
+
/*#__PURE__*/
|
|
102
|
+
regeneratorRuntime.mark(function _callee2() {
|
|
101
103
|
var _this = this;
|
|
102
104
|
|
|
103
105
|
var deps;
|
|
@@ -147,8 +149,12 @@ var Packleator = /*#__PURE__*/function () {
|
|
|
147
149
|
callback();
|
|
148
150
|
});
|
|
149
151
|
});
|
|
150
|
-
},
|
|
151
|
-
|
|
152
|
+
},
|
|
153
|
+
/*#__PURE__*/
|
|
154
|
+
function () {
|
|
155
|
+
var _ref = _asyncToGenerator(
|
|
156
|
+
/*#__PURE__*/
|
|
157
|
+
regeneratorRuntime.mark(function _callee(err) {
|
|
152
158
|
var _this$outputPackageJs, name, version, fileName;
|
|
153
159
|
|
|
154
160
|
return regeneratorRuntime.wrap(function _callee$(_context) {
|
|
@@ -233,7 +239,9 @@ var Packleator = /*#__PURE__*/function () {
|
|
|
233
239
|
}, {
|
|
234
240
|
key: "rebuildPackageJson",
|
|
235
241
|
value: function () {
|
|
236
|
-
var _rebuildPackageJson = _asyncToGenerator(
|
|
242
|
+
var _rebuildPackageJson = _asyncToGenerator(
|
|
243
|
+
/*#__PURE__*/
|
|
244
|
+
regeneratorRuntime.mark(function _callee3() {
|
|
237
245
|
var _this2 = this;
|
|
238
246
|
|
|
239
247
|
var packageJson, tarredPackages, _packageJson$dependen, dependencies, _packageJson$devDepen, devDependencies;
|
|
@@ -280,7 +288,9 @@ var Packleator = /*#__PURE__*/function () {
|
|
|
280
288
|
}, {
|
|
281
289
|
key: "rebuildPackageLockJson",
|
|
282
290
|
value: function () {
|
|
283
|
-
var _rebuildPackageLockJson = _asyncToGenerator(
|
|
291
|
+
var _rebuildPackageLockJson = _asyncToGenerator(
|
|
292
|
+
/*#__PURE__*/
|
|
293
|
+
regeneratorRuntime.mark(function _callee4() {
|
|
284
294
|
var packageLockJson, tarredPackages, recurseDeps;
|
|
285
295
|
return regeneratorRuntime.wrap(function _callee4$(_context4) {
|
|
286
296
|
while (1) {
|
|
@@ -329,7 +339,9 @@ var Packleator = /*#__PURE__*/function () {
|
|
|
329
339
|
}, {
|
|
330
340
|
key: "copyFiles",
|
|
331
341
|
value: function () {
|
|
332
|
-
var _copyFiles = _asyncToGenerator(
|
|
342
|
+
var _copyFiles = _asyncToGenerator(
|
|
343
|
+
/*#__PURE__*/
|
|
344
|
+
regeneratorRuntime.mark(function _callee5() {
|
|
333
345
|
var _this3 = this;
|
|
334
346
|
|
|
335
347
|
var startsWith, endsWith;
|
|
@@ -389,7 +401,9 @@ var Packleator = /*#__PURE__*/function () {
|
|
|
389
401
|
}, {
|
|
390
402
|
key: "pack",
|
|
391
403
|
value: function () {
|
|
392
|
-
var _pack = _asyncToGenerator(
|
|
404
|
+
var _pack = _asyncToGenerator(
|
|
405
|
+
/*#__PURE__*/
|
|
406
|
+
regeneratorRuntime.mark(function _callee6(name, version, dir) {
|
|
393
407
|
var fileName;
|
|
394
408
|
return regeneratorRuntime.wrap(function _callee6$(_context6) {
|
|
395
409
|
while (1) {
|
|
@@ -440,7 +454,9 @@ var Packleator = /*#__PURE__*/function () {
|
|
|
440
454
|
}, {
|
|
441
455
|
key: "cleanup",
|
|
442
456
|
value: function () {
|
|
443
|
-
var _cleanup = _asyncToGenerator(
|
|
457
|
+
var _cleanup = _asyncToGenerator(
|
|
458
|
+
/*#__PURE__*/
|
|
459
|
+
regeneratorRuntime.mark(function _callee7() {
|
|
444
460
|
return regeneratorRuntime.wrap(function _callee7$(_context7) {
|
|
445
461
|
while (1) {
|
|
446
462
|
switch (_context7.prev = _context7.next) {
|
|
@@ -472,7 +488,9 @@ var Packleator = /*#__PURE__*/function () {
|
|
|
472
488
|
}, {
|
|
473
489
|
key: "npmInstall",
|
|
474
490
|
value: function () {
|
|
475
|
-
var _npmInstall = _asyncToGenerator(
|
|
491
|
+
var _npmInstall = _asyncToGenerator(
|
|
492
|
+
/*#__PURE__*/
|
|
493
|
+
regeneratorRuntime.mark(function _callee8() {
|
|
476
494
|
var _this4 = this;
|
|
477
495
|
|
|
478
496
|
var dir,
|
|
@@ -526,7 +544,9 @@ var Packleator = /*#__PURE__*/function () {
|
|
|
526
544
|
}, {
|
|
527
545
|
key: "getPrivateDeps",
|
|
528
546
|
value: function () {
|
|
529
|
-
var _getPrivateDeps = _asyncToGenerator(
|
|
547
|
+
var _getPrivateDeps = _asyncToGenerator(
|
|
548
|
+
/*#__PURE__*/
|
|
549
|
+
regeneratorRuntime.mark(function _callee9(depth) {
|
|
530
550
|
var _this5 = this;
|
|
531
551
|
|
|
532
552
|
return regeneratorRuntime.wrap(function _callee9$(_context9) {
|
|
@@ -571,7 +591,9 @@ var Packleator = /*#__PURE__*/function () {
|
|
|
571
591
|
}, {
|
|
572
592
|
key: "getPackageJson",
|
|
573
593
|
value: function () {
|
|
574
|
-
var _getPackageJson = _asyncToGenerator(
|
|
594
|
+
var _getPackageJson = _asyncToGenerator(
|
|
595
|
+
/*#__PURE__*/
|
|
596
|
+
regeneratorRuntime.mark(function _callee10() {
|
|
575
597
|
var dir,
|
|
576
598
|
lock,
|
|
577
599
|
lockModifier,
|
|
@@ -5,8 +5,6 @@ require("core-js/modules/es.symbol");
|
|
|
5
5
|
|
|
6
6
|
require("core-js/modules/es.array.filter");
|
|
7
7
|
|
|
8
|
-
require("core-js/modules/es.array.for-each");
|
|
9
|
-
|
|
10
8
|
require("core-js/modules/es.object.get-own-property-descriptor");
|
|
11
9
|
|
|
12
10
|
require("core-js/modules/es.object.get-own-property-descriptors");
|
|
@@ -23,7 +21,7 @@ require("regenerator-runtime/runtime");
|
|
|
23
21
|
|
|
24
22
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
25
23
|
|
|
26
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(
|
|
24
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
27
25
|
|
|
28
26
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
29
27
|
|
|
@@ -109,7 +107,9 @@ function main() {
|
|
|
109
107
|
}
|
|
110
108
|
|
|
111
109
|
function _main() {
|
|
112
|
-
_main = _asyncToGenerator(
|
|
110
|
+
_main = _asyncToGenerator(
|
|
111
|
+
/*#__PURE__*/
|
|
112
|
+
regeneratorRuntime.mark(function _callee() {
|
|
113
113
|
var packleator;
|
|
114
114
|
return regeneratorRuntime.wrap(function _callee$(_context) {
|
|
115
115
|
while (1) {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@leverege/build-tools",
|
|
3
|
-
"version": "2.1.
|
|
4
|
-
"description": "A
|
|
3
|
+
"version": "2.1.5",
|
|
4
|
+
"description": "A collection of build / support tools for Leverege developers",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"build": "npm run compile",
|
package/src/helmup
CHANGED
|
@@ -52,6 +52,35 @@ function setOrUnset() {
|
|
|
52
52
|
echo "$setting"
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
+
function checkTimescalePassword(){
|
|
56
|
+
if [ -f values-databases.yaml ] || [ -d timescale-db ];
|
|
57
|
+
then
|
|
58
|
+
printf "\n\n`color r '*** Deleting old timescale files ***'`\n\n"
|
|
59
|
+
rm -rf values-databases.yaml timescale-db
|
|
60
|
+
git add -A
|
|
61
|
+
fi
|
|
62
|
+
|
|
63
|
+
kubectl get secret postgresql-password
|
|
64
|
+
if [[ $? -eq 1 ]]; then
|
|
65
|
+
printf "\n*** Autogenerating Timescale password ***\n\n"
|
|
66
|
+
local psql_pw="$(generatePassword)"
|
|
67
|
+
local psql_rep_pw="$(generatePassword)"
|
|
68
|
+
|
|
69
|
+
kubectl create secret generic postgresql-password \
|
|
70
|
+
--from-literal=postgresql-password=${psql_pw} \
|
|
71
|
+
--from-literal=postgresql-replication-password=${psql_rep_pw}
|
|
72
|
+
|
|
73
|
+
printf "\n\n`color y '*** Save Timescale creds to Keeweb ***'`\n\n"
|
|
74
|
+
printf "`color g "postgresql-password / ${psql_pw}"`\n"
|
|
75
|
+
printf "`color g "postgresql-replication-password / ${psql_rep_pw}"`\n\n"
|
|
76
|
+
fi
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
function generatePassword(){
|
|
80
|
+
RANDOMPW=`openssl rand -base64 12`
|
|
81
|
+
echo $RANDOMPW
|
|
82
|
+
}
|
|
83
|
+
|
|
55
84
|
function checkMonitoringNS(){
|
|
56
85
|
kubectl get namespace monitoring
|
|
57
86
|
if [[ $? -eq 1 ]]; then
|
|
@@ -162,7 +191,7 @@ function monitoringHelp(){
|
|
|
162
191
|
`color g "Proxy to Grafana (the charts you're looking for):"`
|
|
163
192
|
export GRAFANA_POD=\$(kubectl --namespace monitoring get pods -l 'app.kubernetes.io/instance=grafana' -o jsonpath='{.items[0].metadata.name}')
|
|
164
193
|
kubectl --namespace monitoring port-forward \$GRAFANA_POD 3000 &
|
|
165
|
-
sleep 2; open http://localhost:3000
|
|
194
|
+
sleep 2; open http://localhost:3000
|
|
166
195
|
|
|
167
196
|
`color toast "Save monitoring login to Keeweb"` => `color r "admin / $MONPASS"`
|
|
168
197
|
|
|
@@ -382,7 +411,8 @@ function doInstall() {
|
|
|
382
411
|
;;
|
|
383
412
|
|
|
384
413
|
"timescale-db")
|
|
385
|
-
|
|
414
|
+
checkTimescalePassword
|
|
415
|
+
helm upgrade --install timescale-db leverege/timescale-db
|
|
386
416
|
;;
|
|
387
417
|
|
|
388
418
|
"ingress")
|