@leverege/build-tools 2.26.5 → 2.28.0-beta.1

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.
Files changed (37) hide show
  1. package/package.json +7 -7
  2. package/src/helm-charts/elastic-cluster/.nohelm +0 -0
  3. package/src/helm-charts/elastic-cluster/elasticsearch-client.yaml +51 -0
  4. package/src/helm-charts/elastic-cluster/elasticsearch-data.yaml +51 -0
  5. package/src/helm-charts/elastic-cluster/elasticsearch-master.yaml +51 -0
  6. package/src/helm-charts/elasticsearch/.nohelm +0 -0
  7. package/src/helm-charts/grafana/.nohelm +0 -0
  8. package/src/{system-charts → helm-charts/grafana}/grafana-local.yaml.ovh +1 -0
  9. package/src/helm-charts/postgres/.nohelm +0 -0
  10. package/src/helm-charts/redis/.nohelm +0 -0
  11. package/src/helm-charts/timescale-db/.nohelm +0 -0
  12. package/src/helm-charts/traefik/.nohelm +0 -0
  13. package/src/helm-charts/velero/.nohelm +0 -0
  14. package/src/helmdn +2 -3
  15. package/src/helmup +29 -97
  16. package/src/system-charts/cert-manager-local.yaml +0 -43
  17. package/src/system-charts/cert-manager.hup +0 -37
  18. /package/src/{system-charts/elastic-cluster.hup → helm-charts/elastic-cluster/helmup.plugin} +0 -0
  19. /package/src/{system-charts → helm-charts/elasticsearch}/elasticsearch-local.yaml +0 -0
  20. /package/src/{system-charts/elasticsearch.hup → helm-charts/elasticsearch/helmup.plugin} +0 -0
  21. /package/src/{system-charts/grafana.hup → helm-charts/grafana/helmup.plugin} +0 -0
  22. /package/src/{system-charts/postgres.hup → helm-charts/postgres/helmup.plugin} +0 -0
  23. /package/src/{system-charts → helm-charts/postgres}/postgres-local.yaml +0 -0
  24. /package/src/{system-charts/prometheus.hup → helm-charts/prometheus/helmup.plugin} +0 -0
  25. /package/src/{system-charts/prometheus-local.yaml → helm-charts/prometheus/values-local.yaml} +0 -0
  26. /package/src/{system-charts/redis.hup → helm-charts/redis/helmup.plugin} +0 -0
  27. /package/src/{system-charts → helm-charts/redis}/redis-local.yaml +0 -0
  28. /package/src/{system-charts/stackdriver-exporter.hup → helm-charts/stackdriver-exporter/helmup.plugin} +0 -0
  29. /package/src/{system-charts/stackdriver-exporter-local.yaml → helm-charts/stackdriver-exporter/values-local.yaml} +0 -0
  30. /package/src/{system-charts/timescale-db.hup → helm-charts/timescale-db/helmup.plugin} +0 -0
  31. /package/src/{system-charts → helm-charts/timescale-db}/timescale-db-local.yaml +0 -0
  32. /package/src/{system-charts/traefik.hup → helm-charts/traefik/helmup.plugin} +0 -0
  33. /package/src/{system-charts → helm-charts/traefik}/traefik-local.yaml +0 -0
  34. /package/src/{system-charts → helm-charts/traefik-canary}/traefik-canary-local.yaml +0 -0
  35. /package/src/{system-charts → helm-charts/traefik-canary}/traefik-canary.hup +0 -0
  36. /package/src/{system-charts/velero.hup → helm-charts/velero/helmup.plugin} +0 -0
  37. /package/src/{system-charts → helm-charts/velero}/velero-local.yaml +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leverege/build-tools",
3
- "version": "2.26.5",
3
+ "version": "2.28.0-beta.1",
4
4
  "description": "A collection of build / support tools for Leverege developers",
5
5
  "main": "index.js",
6
6
  "repository": {
@@ -55,7 +55,7 @@
55
55
  "chalk": "^4.1.2",
56
56
  "command-line-args": "^5.2.1",
57
57
  "command-line-usage": "^6.1.3",
58
- "deepmerge": "^4.3.0",
58
+ "deepmerge": "^4.3.1",
59
59
  "dotenv": "^16.0.3",
60
60
  "enquirer": "^2.3.6",
61
61
  "execa": "^5.1.1",
@@ -65,14 +65,14 @@
65
65
  "parse-gitignore": "^2.0.0",
66
66
  "readline-sync": "^1.4.10",
67
67
  "semver": "^7.3.8",
68
- "simple-git": "^3.16.0",
69
- "zx": "^7.1.1"
68
+ "simple-git": "^3.17.0",
69
+ "zx": "^7.2.1"
70
70
  },
71
71
  "devDependencies": {
72
- "@babel/cli": "^7.20.7",
73
- "@babel/core": "^7.20.12",
72
+ "@babel/cli": "^7.21.0",
73
+ "@babel/core": "^7.21.3",
74
74
  "@leverege/babel-preset-leverege-node": "^2.0.0",
75
75
  "@leverege/eslint-config-leverege": "^3.0.1",
76
- "npm": "^9.4.1"
76
+ "npm": "^9.6.2"
77
77
  }
78
78
  }
File without changes
@@ -0,0 +1,51 @@
1
+ # client / coordinating nodes - smart load balancers
2
+ nodeGroup: "client"
3
+ clusterName: "elasticsearch"
4
+
5
+ #esJavaOpts: "-Xmx1g -Xms1g"
6
+ #
7
+ resources:
8
+ limits: #
9
+ cpu: # 1000m default
10
+ memory: "2Gi" # 2Gi
11
+ requests: # values.yaml defaults
12
+ cpu: "200m" # 1000m
13
+ memory: "1500Mi" # 2Gi
14
+
15
+ volumeClaimTemplate:
16
+ storageClassName: "ssd"
17
+ resources:
18
+ requests:
19
+ storage: "1Gi"
20
+
21
+ roles: # client / coordinator
22
+ master: "false"
23
+ ingest: "false"
24
+ data: "false"
25
+ remote_cluster_client: "false"
26
+ ml: "false"
27
+
28
+ replicas: 3
29
+ antiAffinity: "hard" # hard is default
30
+
31
+ esConfig:
32
+ elasticsearch.yml: |
33
+ xpack.security.enabled: false
34
+
35
+ persistence:
36
+ enabled: false
37
+
38
+ tolerations:
39
+ - key: "elastic"
40
+ operator: "Equal"
41
+ value: "true"
42
+ effect: "NoSchedule"
43
+
44
+ nodeAffinity:
45
+ requiredDuringSchedulingIgnoredDuringExecution:
46
+ nodeSelectorTerms:
47
+ - matchExpressions:
48
+ - key: target-env
49
+ operator: In
50
+ values:
51
+ - elastic
@@ -0,0 +1,51 @@
1
+ #
2
+ nodeGroup: "data"
3
+ clusterName: "elasticsearch"
4
+
5
+ esJavaOpts: "-Xmx4g -Xms4g"
6
+
7
+ resources:
8
+ limits: #
9
+ cpu: # 1000m default
10
+ memory: "8Gi" # 2Gi
11
+ requests: # values.yaml defaults
12
+ cpu: "1000m" # 1000m
13
+ memory: "4Gi" # 2Gi
14
+
15
+ volumeClaimTemplate:
16
+ storageClassName: "ssd"
17
+ resources:
18
+ requests:
19
+ storage: "64Gi"
20
+
21
+ roles: # data
22
+ master: "false"
23
+ ingest: "true"
24
+ data: "true"
25
+ remote_cluster_client: "false"
26
+ ml: "false"
27
+
28
+ replicas: 3
29
+ antiAffinity: "soft" # hard is default
30
+
31
+ esConfig:
32
+ elasticsearch.yml: |
33
+ xpack.security.enabled: false
34
+
35
+ persistence:
36
+ enabled: true
37
+
38
+ tolerations:
39
+ - key: "elastic"
40
+ operator: "Equal"
41
+ value: "true"
42
+ effect: "NoSchedule"
43
+
44
+ nodeAffinity:
45
+ requiredDuringSchedulingIgnoredDuringExecution:
46
+ nodeSelectorTerms:
47
+ - matchExpressions:
48
+ - key: target-env
49
+ operator: In
50
+ values:
51
+ - elastic
@@ -0,0 +1,51 @@
1
+ # master - manages indexes, tracks nodes and shards
2
+ nodeGroup: "master"
3
+ clusterName: "elasticsearch"
4
+
5
+ #esJavaOpts: "-Xmx1g -Xms1g"
6
+ #
7
+ resources:
8
+ limits: #
9
+ cpu: # 1000m default
10
+ memory: "2Gi" # 2Gi
11
+ requests: # values.yaml defaults
12
+ cpu: "100m" # 1000m
13
+ memory: "1500Mi" # 2Gi
14
+
15
+ volumeClaimTemplate:
16
+ storageClassName: "ssd"
17
+ resources:
18
+ requests:
19
+ storage: "4Gi"
20
+
21
+ roles: # master
22
+ master: "true"
23
+ ingest: "false"
24
+ data: "false"
25
+ remote_cluster_client: "false"
26
+ ml: "false"
27
+
28
+ replicas: 3
29
+ antiAffinity: "hard" # hard is default
30
+
31
+ esConfig:
32
+ elasticsearch.yml: |
33
+ xpack.security.enabled: false
34
+
35
+ persistence:
36
+ enabled: true
37
+
38
+ tolerations:
39
+ - key: "elastic"
40
+ operator: "Equal"
41
+ value: "true"
42
+ effect: "NoSchedule"
43
+
44
+ nodeAffinity:
45
+ requiredDuringSchedulingIgnoredDuringExecution:
46
+ nodeSelectorTerms:
47
+ - matchExpressions:
48
+ - key: target-env
49
+ operator: In
50
+ values:
51
+ - elastic
File without changes
File without changes
@@ -1,3 +1,4 @@
1
+ # ONLY EDIT grafana-local.yaml.ovh / grafana-local.yaml is git ignored
1
2
  service:
2
3
  type: "NodePort"
3
4
  port: "9000"
File without changes
File without changes
File without changes
File without changes
File without changes
package/src/helmdn CHANGED
@@ -25,10 +25,9 @@ CLEARWARN
25
25
 
26
26
  clearlyWarn
27
27
  cat<<ABOUT2NUKE
28
- You are about to start nuking deployments, as in delete with --purge. Are
29
- you certain this is what you want to do?
28
+ You are about to cause helm to uninstall a service from the cluster.
30
29
 
31
- Enter "yes" if that is in fact the case.
30
+ Enter "yes" to continue to the `color toast nuking`...
32
31
 
33
32
  ABOUT2NUKE
34
33
 
package/src/helmup CHANGED
@@ -21,7 +21,6 @@ PLATFORM=(
21
21
  scheduler
22
22
  transponder-bq
23
23
  transponder-rt
24
- transponder-postgres # deprecated
25
24
  transponder-tsdb
26
25
  )
27
26
 
@@ -33,7 +32,6 @@ SYSTEM=(
33
32
  preemptible-killer
34
33
  zombie-killer
35
34
  reloader
36
- # cert-manager # deprecated from SYSTEM 01/13/2023
37
35
  traefik
38
36
  velero
39
37
  monitoring # do monitoring last to show password
@@ -110,16 +108,9 @@ function createNamespaceIfNeeded() {
110
108
 
111
109
  function bootstrapLocalSetup() {
112
110
  SERVICE="$1"
113
- [ -z "$1" ] && errorExit "bootstrapLocalSetup function requires a service name"
114
- ifPluggedIn $SERVICE && return # if it's already plugged in then go
115
-
116
- TOOLS_SRC="$(build-tools --reporoot)/src"
117
- SYSTEM_FILES="$(build-tools --reporoot)/src/system-charts"
111
+ [ -z "$SERVICE" ] && errorExit "bootstrapLocalSetup function requires a service name"
118
112
 
119
- SYSTEM_CHART="$SYSTEM_FILES/$SERVICE-local.yaml"
120
- [ ! -f "$SYSTEM_CHART" ] && errorExit "Missing $SERVICE chart => $(color y $SYSTEM_CHART)"
121
- SYSTEM_HUP="$SYSTEM_FILES/$SERVICE.hup"
122
- [ ! -f "$SYSTEM_HUP" ] && errorExit "Missing $SERVICE helmup script => $(color y $SYSTEM_HUP)"
113
+ ifPluggedIn $SERVICE && return # if it's already plugged in then go
123
114
 
124
115
  if [ ! -d "$SERVICE" ];
125
116
  then
@@ -142,16 +133,16 @@ MISSING_HELMUP_PLUGIN
142
133
  errorExit "Installaion of `color y $SERVICE` failed - exiting"
143
134
  fi
144
135
 
145
- if [ "$2" == "set-values-local" ];
136
+ HELM_CHARTS="$(build-tools --reporoot)/src/helm-charts"
137
+ SERVICE_CHART="$HELM_CHARTS/$SERVICE"
138
+
139
+ if [ ! -d "$SERVICE_CHART" ];
146
140
  then
147
- TARGET_CHART="values-local.yaml"
148
- else
149
- TARGET_CHART="$SERVICE-local.yaml"
150
- touch $SERVICE/.nohelm
141
+ rm -rf $SERVICE
142
+ errorExit "Missing $SERVICE chart => $(color y $SERVICE_CHART)"
151
143
  fi
152
144
 
153
- cp $SYSTEM_CHART $SERVICE/$TARGET_CHART
154
- cp $SYSTEM_HUP $SERVICE/helmup.plugin
145
+ cp -a $SERVICE_CHART .
155
146
  git add $SERVICE
156
147
  overwhelm.js --genvals
157
148
  ifPluggedIn $SERVICE
@@ -212,7 +203,7 @@ function installMonitoringEnvironment() {
212
203
 
213
204
  ## Install Stackdriver Exporter
214
205
  installStackdriverExporterEnvironment
215
- bootstrapLocalSetup stackdriver-exporter set-values-local
206
+ bootstrapLocalSetup stackdriver-exporter
216
207
 
217
208
  # Add necessary helm repositories - note that stable is deprecated
218
209
  addHelmRepo prometheus-community https://prometheus-community.github.io/helm-charts
@@ -231,7 +222,7 @@ es:
231
222
  ELASTIC_EXPORTER_CHART_MOD
232
223
 
233
224
  ## Install Prometheus
234
- bootstrapLocalSetup prometheus set-values-local
225
+ bootstrapLocalSetup prometheus
235
226
 
236
227
  ## Install Grafana
237
228
  bootstrapLocalSetup grafana
@@ -398,65 +389,6 @@ OLDER_GKE
398
389
  fi
399
390
  }
400
391
 
401
- function installCertManager() {
402
- showInstalling "Cert Managment"
403
- createNamespaceIfNeeded cert-manager
404
-
405
- kubectl get secret cloudflare --namespace cert-manager &>/dev/null
406
- if [[ $? -eq 1 ]];
407
- then
408
- cat<<NEED_MANAGED_SECRET
409
- $RED_ERROR missing secret: `color y cloudflare` namespace: `color y cert-manager`
410
-
411
- This secret will be fetched from the leverege-docker-images cluster and
412
- injected into this cluster.
413
- NEED_MANAGED_SECRET
414
- #yesToContinue "to copy and inject the cloudflare secret"
415
- TOKEN=$(getManagedSecret "CLOUDFLARE_API_TOKEN")
416
- if [ $? -ne 0 ];
417
- then
418
- printf "$RED_ERROR getManagedSecret reponse=>[$TOKEN]"
419
- exitOnError 1 "Failed to fetch the secret from leverege-docker-images"
420
- fi
421
- printf "\nInjecting=[$TOKEN] into cloudflare secret\n"
422
- kubectl create secret generic cloudflare \
423
- --namespace cert-manager \
424
- --from-literal=dns-token=$TOKEN
425
- fi
426
-
427
- addHelmRepo jetstack https://charts.jetstack.io
428
- [ -z "$CERT_MANAGER_HELM_CHART" ] && CERT_MANAGER_HELM_CHART="v1.10"
429
- helm upgrade --install cert-manager jetstack/cert-manager \
430
- --namespace cert-manager --set installCRDs=true \
431
- --version $CERT_MANAGER_HELM_CHART
432
-
433
- cat<<DELAY
434
-
435
- `color y "20 second delay to allow cert-manager to stabilize before proceeding...\n"`
436
-
437
- DELAY
438
-
439
- sleep 20
440
- kubectl -n cert-manager apply -f cert-manager
441
-
442
- if [[ $? -eq 1 ]];
443
- then
444
-
445
- `color y "***WARNING: cert-manager components still coming up"`
446
-
447
- Try rerunning this apply again in 30 seconds:
448
- `color g "kubectl -n cert-manager apply -f cert-manager"`
449
- fi
450
-
451
- cat<<HINTS
452
-
453
- fetch certs: `color g "kubectl -n cert-manager get certificate"`
454
- check certs: `color g "kubectl -n cert-manager describe certificate"`
455
-
456
- HINTS
457
- removeHelmRepo jetstack
458
- }
459
-
460
392
  function installTraefikEnvironment() {
461
393
  showInstalling "Traefik Namespace and Cloudflare Secret"
462
394
  createNamespaceIfNeeded traefik
@@ -681,11 +613,6 @@ function doInstall() {
681
613
  doInstall "${SYSTEM[@]}"
682
614
  ;;
683
615
 
684
- "cert-manager")
685
- installCertManager
686
- bootstrapLocalSetup cert-manager
687
- ;;
688
-
689
616
  "cronZombieKiller"|"zombie-killer")
690
617
  installCronZombieKiller # eradicate the gke 1.20+ zombies
691
618
  ;;
@@ -694,8 +621,12 @@ function doInstall() {
694
621
  kubectl create -f https://raw.githubusercontent.com/GoogleCloudPlatform/k8s-stackdriver/master/custom-metrics-stackdriver-adapter/deploy/production/adapter.yaml
695
622
  ;;
696
623
 
697
- "elastic"|"elasticsearch")
698
- bootstrapLocalSetup elasticsearch
624
+ "elasticsearch") # simple 3 master cluster
625
+ bootstrapLocalSetup $SERVICE
626
+ ;;
627
+
628
+ "elastic-cluster") # complex master/data/client ES cluster
629
+ bootstrapLocalSetup $SERVICE
699
630
  ;;
700
631
 
701
632
  "estafette"|"preemptible-killer")
@@ -703,7 +634,7 @@ function doInstall() {
703
634
  ;;
704
635
 
705
636
  "grafana")
706
- bootstrapLocalSetup grafana
637
+ bootstrapLocalSetup $SERVICE
707
638
  ;;
708
639
 
709
640
  "monitoring")
@@ -715,16 +646,16 @@ function doInstall() {
715
646
  monitoringHelp && exit 0
716
647
  ;;
717
648
 
718
- "postgres"|"postgresql")
719
- bootstrapLocalSetup postgres
649
+ "postgres")
650
+ bootstrapLocalSetup $SERVICE
720
651
  ;;
721
652
 
722
653
  "prometheus")
723
- bootstrapLocalSetup prometheus set-values-local
654
+ bootstrapLocalSetup $SERVICE
724
655
  ;;
725
656
 
726
657
  "redis")
727
- bootstrapLocalSetup redis
658
+ bootstrapLocalSetup $SERVICE
728
659
  ;;
729
660
 
730
661
  "reloader")
@@ -736,11 +667,11 @@ function doInstall() {
736
667
 
737
668
  "stackdriver-exporter")
738
669
  installStackdriverExporterEnvironment
739
- bootstrapLocalSetup stackdriver-exporter set-values-local
670
+ bootstrapLocalSetup $SERVICE
740
671
  ;;
741
672
 
742
- "timescale"|"timescale-db")
743
- bootstrapLocalSetup timescale-db
673
+ "timescale-db")
674
+ bootstrapLocalSetup $SERVICE
744
675
  ;;
745
676
 
746
677
  transponder-*)
@@ -751,16 +682,17 @@ function doInstall() {
751
682
 
752
683
  "traefik")
753
684
  installTraefikEnvironment
754
- bootstrapLocalSetup traefik
685
+ bootstrapLocalSetup $SERVICE
755
686
  ;;
687
+
756
688
  "traefik-canary")
757
689
  # only valid if traefik is already installed
758
- bootstrapLocalSetup traefik-canary
690
+ bootstrapLocalSetup $SERVICE
759
691
  ;;
760
692
 
761
693
  "velero")
762
694
  installVeleroEnvironment
763
- bootstrapLocalSetup velero
695
+ bootstrapLocalSetup $SERVICE
764
696
  ;;
765
697
 
766
698
  *)
@@ -1,43 +0,0 @@
1
- # cert-manager is disabled
2
- #
3
- # cluster-issuer.yaml.ovh
4
- #
5
- apiVersion: cert-manager.io/v1
6
- kind: ClusterIssuer
7
- metadata:
8
- name: letsencrypt-prd
9
- spec:
10
- acme:
11
- # You must replace this email address with your own.
12
- # Let's Encrypt will use this to contact you about expiring
13
- # certificates, and issues related to your account.
14
- email: devops@leverege.com
15
- server: https://acme-v02.api.letsencrypt.org/directory
16
- privateKeySecretRef:
17
- # Secret resource used to store the account's private key.
18
- name: issuer-account-key
19
- # Add a single challenge solver, HTTP01 using nginx
20
- solvers:
21
- - dns01:
22
- cloudflare:
23
- email: devops@leverege.com
24
- apiTokenSecretRef:
25
- name: cloudflare
26
- key: dns-token
27
- selector:
28
- dnsZones:
29
- - 'OVH:<HOST>.com'
30
- ---
31
- #
32
- # this-service.yaml.ovh
33
- #
34
- kind: Certificate
35
- metadata:
36
- name: OVH:<PROJECT_ID>
37
- spec:
38
- secretName: OVH:<PROJECT_ID>-cert
39
- dnsNames:
40
- - '*.OVH:<HOST>.com'
41
- issuerRef:
42
- name: letsencrypt-prd
43
- kind: ClusterIssuer
@@ -1,37 +0,0 @@
1
- #!/bin/bash
2
- #
3
- # cert-manager may be skipped for now?
4
- #
5
- skipInstalling cert-manager && exit 0
6
-
7
- addHelmRepo jetstack https://charts.jetstack.io
8
- [ -z "$CERT_MANAGER_CHART_VERSION" ] && CERT_MANAGER_CHART_VERSION="v1.10"
9
- helm upgrade --install cert-manager jetstack/cert-manager \
10
- --namespace cert-manager --set installCRDs=true \
11
- --version $CERT_MANAGER_CHART_VERSION
12
-
13
- cat<<DELAY
14
-
15
- `color y "20 second delay to allow cert-manager to stabilize before proceeding...\n"`
16
-
17
- DELAY
18
-
19
- sleep 20
20
- kubectl -n cert-manager apply -f cert-manager
21
-
22
- if [[ $? -eq 1 ]];
23
- then
24
-
25
- `color y "***WARNING: cert-manager components still coming up"`
26
-
27
- Try rerunning this apply again in 30 seconds:
28
- `color g "kubectl -n cert-manager apply -f cert-manager"`
29
- fi
30
-
31
- cat<<HINTS
32
-
33
- fetch certs: `color g "kubectl -n cert-manager get certificate"`
34
- check certs: `color g "kubectl -n cert-manager describe certificate"`
35
-
36
- HINTS
37
- removeHelmRepo jetstack