@leverege/build-tools 2.5.12 → 2.5.14

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.
@@ -273,6 +273,15 @@ ahoy.forEach(dir => {
273
273
  valuesOut = doReplacements(valuesOut, over);
274
274
  fs.writeFileSync(`${dir}/values.yaml`, valuesOut);
275
275
  }
276
+ }); // we can also apply replaceables to any top level .ovh files to support top level config maps
277
+
278
+ glob.sync('*.ovh').forEach(cfgmap => {
279
+ const target = cfgmap.replace(/.ovh$/, '');
280
+ let valuesOut = fs.readFileSync(cfgmap, {
281
+ encoding: 'utf-8'
282
+ });
283
+ valuesOut = doReplacements(valuesOut, over);
284
+ fs.writeFileSync(target, valuesOut);
276
285
  }); // Set the GCP context for safety!
277
286
 
278
287
  const clusterName = over.CLUSTER_NAME;
Binary file
@@ -273,6 +273,15 @@ ahoy.forEach(dir => {
273
273
  valuesOut = doReplacements(valuesOut, over);
274
274
  fs.writeFileSync(`${dir}/values.yaml`, valuesOut);
275
275
  }
276
+ }); // we can also apply replaceables to any top level .ovh files to support top level config maps
277
+
278
+ glob.sync('*.ovh').forEach(cfgmap => {
279
+ const target = cfgmap.replace(/.ovh$/, '');
280
+ let valuesOut = fs.readFileSync(cfgmap, {
281
+ encoding: 'utf-8'
282
+ });
283
+ valuesOut = doReplacements(valuesOut, over);
284
+ fs.writeFileSync(target, valuesOut);
276
285
  }); // Set the GCP context for safety!
277
286
 
278
287
  const clusterName = over.CLUSTER_NAME;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leverege/build-tools",
3
- "version": "2.5.12",
3
+ "version": "2.5.14",
4
4
  "description": "A collection of build / support tools for Leverege developers",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -55,25 +55,25 @@
55
55
  "command-line-args": "^5.1.1",
56
56
  "command-line-usage": "^6.1.1",
57
57
  "dotenv": "^8.2.0",
58
- "execa": "^4.1.0",
58
+ "execa": "^5.0.0",
59
59
  "figlet": "^1.5.0",
60
60
  "git-branch": "^2.0.1",
61
61
  "glob": "^7.1.6",
62
62
  "inquirer": "^7.3.3",
63
63
  "js-yaml": "^3.14.0",
64
64
  "ncp": "^2.0.0",
65
- "npm-check-updates": "^10.2.2",
65
+ "npm-check-updates": "^10.2.3",
66
66
  "npm-registry-fetch": "^9.0.0",
67
67
  "open": "^7.3.0",
68
68
  "ora": "^5.1.0",
69
69
  "parse-gitignore": "^1.0.1",
70
70
  "readline-sync": "^1.4.10",
71
- "semver": "^7.3.2",
72
- "simple-git": "^2.23.0"
71
+ "semver": "^7.3.4",
72
+ "simple-git": "^2.24.0"
73
73
  },
74
74
  "devDependencies": {
75
- "@babel/cli": "^7.12.7",
76
- "@babel/core": "^7.12.7",
75
+ "@babel/cli": "^7.12.8",
76
+ "@babel/core": "^7.12.9",
77
77
  "@babel/node": "^7.12.6",
78
78
  "@leverege/babel-preset-leverege-node": "^1.1.1",
79
79
  "@leverege/eslint-config-leverege": "^2.2.0",
package/src/helmup CHANGED
@@ -5,6 +5,7 @@
5
5
  #
6
6
  # printf "\n***** RUNNING LOCALLY *****\n" && sleep 2
7
7
  PLATFORM=(
8
+ authz-server
8
9
  api-server
9
10
  db-curator
10
11
  emailer
@@ -22,6 +23,7 @@ SYSTEM=(
22
23
  elastic
23
24
  redis
24
25
  postgres
26
+ timescale-db
25
27
  velero
26
28
  reloader
27
29
  monitoring
@@ -109,14 +111,16 @@ DIRTYGIT
109
111
  # blow away the existing deployment
110
112
  helm uninstall monitoring
111
113
 
114
+ NEWBASELINE=${BASELINE_ROOT:-new-baseline}
115
+
112
116
  # Make certain the baseline branch is up to date
113
- git fetch origin new-baseline:new-baseline
117
+ git fetch origin ${NEWBASELINE}:${NEWBASELINE}
114
118
 
115
119
  NEWMON="elasticsearch-exporter grafana prometheus stackdriver-exporter"
116
120
  for SOURCE in $NEWMON;
117
121
  do
118
- printf "Grabbing $SOURCE from new-baseline\n"
119
- git checkout --quiet new-baseline $SOURCE
122
+ printf "Grabbing $SOURCE from ${NEWBASELINE}\n"
123
+ git checkout --quiet ${NEWBASELINE} $SOURCE
120
124
  done
121
125
 
122
126
  cat<<RERUN
package/src/k8cycle ADDED
@@ -0,0 +1,44 @@
1
+ #!/usr/bin/env node
2
+ const { Client } = require( 'kubernetes-client' )
3
+ const client = new Client( { version : '1.13' } )
4
+
5
+ const condir = ( log, thing ) => {
6
+ console.dir( { log, thing }, { depth : 8, colors : true } ) // eslint-disable-line
7
+ }
8
+ const getSecrets = async () => {
9
+ const p = await client.api.v1.secrets.get()
10
+ const secrets = []
11
+ p.body.items.forEach( ( item ) => {
12
+ console.log( item.metadata.name )
13
+ secrets.push( item.metadata.name, item.data )
14
+ } )
15
+ return secrets
16
+ }
17
+
18
+ const getSecret = async ( name, ns = 'default' ) => {
19
+ //const p = await client.api.v1.namespaces.default.secrets.big-query.get()
20
+ const p = await client.api.v1.namespaces(ns).secrets(name).get()
21
+ console.dir( p, { depth : 8, colors : true } )
22
+ //console.log( p.body.data, '<=SRSLY?' )
23
+ let buff = Buffer.from( p.body.data.key, 'base64' )
24
+ console.log( `Name=>${name} Secret=>'${buff.toString( 'ascii' ).trim()}'` )
25
+ }
26
+ const getReplicas = async ( type, ns = 'default' ) => {
27
+ const replicas = await client.apis.apps.v1.namespaces( ns )[type].get()
28
+ return replicas.body.items.map( ( item, idx ) => {
29
+ return { type, ns, name : item.metadata.name }
30
+ } )
31
+ }
32
+
33
+ const getDeploymentsAndStatefulsets = async ( name, ns = 'default' ) => {
34
+ return [
35
+ ...await getReplicas( 'deployments' ),
36
+ ...await getReplicas( 'statefulsets' ),
37
+ ]
38
+ }
39
+
40
+ let depsets
41
+ async function main () {
42
+ console.log( '--- NOT READY FOR PRIME TIME ---' )
43
+ depsets = await getDeploymentsAndStatefulsets()
44
+ }
package/src/overwhelm.js CHANGED
@@ -229,6 +229,14 @@ ahoy.forEach( ( dir ) => {
229
229
  }
230
230
  } )
231
231
 
232
+ // we can also apply replaceables to any top level .ovh files to support top level config maps
233
+ glob.sync( '*.ovh' ).forEach( ( cfgmap ) => {
234
+ const target = cfgmap.replace(/.ovh$/,'')
235
+ let valuesOut = fs.readFileSync( cfgmap, { encoding : 'utf-8' } )
236
+ valuesOut = doReplacements( valuesOut, over )
237
+ fs.writeFileSync( target, valuesOut )
238
+ } )
239
+
232
240
  // Set the GCP context for safety!
233
241
  const clusterName = over.CLUSTER_NAME
234
242
  const projectId = over.PROJECT_ID
@@ -8,16 +8,19 @@ impersonate() {
8
8
  }
9
9
 
10
10
  case $1 in
11
- gke)
12
- impersonate k8s@project.iam.gserviceaccount.com
13
- ;;
14
- admin)
15
- impersonate admin@other-project.iam.gserviceaccount.com
16
- ;;
17
- clear)
18
- gcloud config unset auth/impersonate_service_account
19
- ;;
20
- *)
21
- echo "Usage: Updates impersonated service account"
22
- echo " imp-sa [gke|admin|clear]"
11
+ terraform)
12
+ impersonate terraformer@leverege-dev-john.iam.gserviceaccount.com
13
+ ;;
14
+ gke)
15
+ impersonate k8s@project.iam.gserviceaccount.com
16
+ ;;
17
+ admin)
18
+ impersonate admin@other-project.iam.gserviceaccount.com
19
+ ;;
20
+ clear)
21
+ gcloud config unset auth/impersonate_service_account
22
+ ;;
23
+ *)
24
+ echo "Usage: Updates impersonated service account"
25
+ echo " imp-sa [gke|admin|clear]"
23
26
  esac
@@ -2,7 +2,7 @@
2
2
 
3
3
  SVC_PROJ="leverege-dev-john"
4
4
 
5
- SVC_NAME="terraformer"
5
+ SVC_NAME="terraform"
6
6
  SVC_ACCT="${SVC_NAME}@${SVC_PROJ}.iam.gserviceaccount.com"
7
7
 
8
8
  function countdown() {
@@ -16,10 +16,12 @@ function countdown() {
16
16
  done
17
17
  }
18
18
 
19
+ gcloud config unset auth/impersonate_service_account
20
+
19
21
  gcloud iam service-accounts create ${SVC_NAME} \
20
22
  --project=${SVC_PROJ} --quiet \
21
- --description="the terraforming account" \
22
- --display-name="terraformer" &> /dev/null
23
+ --description="${SVC_NAME} SA" \
24
+ --display-name="${SVC_NAME}" &> /dev/null
23
25
 
24
26
  gcloud projects add-iam-policy-binding ${SVC_PROJ} \
25
27
  --project=${SVC_PROJ} --quiet \
@@ -31,8 +33,18 @@ gcloud projects add-iam-policy-binding ${SVC_PROJ} \
31
33
  --member=serviceAccount:${SVC_ACCT} \
32
34
  --role=roles/iam.securityAdmin &> /dev/null
33
35
 
36
+ gcloud projects add-iam-policy-binding ${SVC_PROJ} \
37
+ --project=${SVC_PROJ} --quiet \
38
+ --member=serviceAccount:${SVC_ACCT} \
39
+ --role=roles/iam.serviceAccountTokenCreator &> /dev/null
40
+
34
41
  countdown 30 "will delete ${SVC_NAME} service account"
35
42
 
43
+ gcloud projects remove-iam-policy-binding ${SVC_PROJ} \
44
+ --project=${SVC_PROJ} --quiet \
45
+ --member=serviceAccount:${SVC_ACCT} \
46
+ --role=roles/iam.serviceAccountTokenCreator &> /dev/null
47
+
36
48
  gcloud projects remove-iam-policy-binding ${SVC_PROJ} \
37
49
  --project=${SVC_PROJ} --quiet \
38
50
  --member=serviceAccount:${SVC_ACCT} \