@leverege/build-tools 2.32.4 → 2.33.0

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 (32) hide show
  1. package/lib/server/overwhelm.js +2 -4
  2. package/lib/web/overwhelm.js +2 -4
  3. package/package.json +8 -9
  4. package/src/dockreate +24 -1
  5. package/src/helm-charts/elasticsearch/helmup.plugin +1 -1
  6. package/src/helm-charts/elasticsearch-helm-gke1.25/.helmignore +2 -0
  7. package/src/helm-charts/elasticsearch-helm-gke1.25/helm/Chart.yaml +12 -0
  8. package/src/helm-charts/elasticsearch-helm-gke1.25/helm/Makefile +1 -0
  9. package/src/helm-charts/elasticsearch-helm-gke1.25/helm/README.md +1 -0
  10. package/src/helm-charts/elasticsearch-helm-gke1.25/helm/templates/NOTES.txt +6 -0
  11. package/src/helm-charts/elasticsearch-helm-gke1.25/helm/templates/_helpers.tpl +65 -0
  12. package/src/helm-charts/elasticsearch-helm-gke1.25/helm/templates/configmap.yaml +34 -0
  13. package/src/helm-charts/elasticsearch-helm-gke1.25/helm/templates/ingress.yaml +64 -0
  14. package/src/helm-charts/elasticsearch-helm-gke1.25/helm/templates/networkpolicy.yaml +61 -0
  15. package/src/helm-charts/elasticsearch-helm-gke1.25/helm/templates/poddisruptionbudget.yaml +12 -0
  16. package/src/helm-charts/elasticsearch-helm-gke1.25/helm/templates/podsecuritypolicy.yaml +14 -0
  17. package/src/helm-charts/elasticsearch-helm-gke1.25/helm/templates/role.yaml +25 -0
  18. package/src/helm-charts/elasticsearch-helm-gke1.25/helm/templates/rolebinding.yaml +24 -0
  19. package/src/helm-charts/elasticsearch-helm-gke1.25/helm/templates/service.yaml +76 -0
  20. package/src/helm-charts/elasticsearch-helm-gke1.25/helm/templates/serviceaccount.yaml +20 -0
  21. package/src/helm-charts/elasticsearch-helm-gke1.25/helm/templates/statefulset.yaml +390 -0
  22. package/src/helm-charts/elasticsearch-helm-gke1.25/helm/values.yaml +352 -0
  23. package/src/helm-charts/elasticsearch8/.nohelm +0 -0
  24. package/src/helm-charts/elasticsearch8/elasticsearch-local.yaml +104 -0
  25. package/src/helm-charts/elasticsearch8/helmup.plugin +14 -0
  26. package/src/helmdn +2 -1
  27. package/src/helmup +6 -2
  28. package/src/overwhelm.js +2 -4
  29. package/.vscode/settings.json +0 -15
  30. package/lib/server/npm-scripts/postinstall.js +0 -16
  31. package/lib/web/npm-scripts/postinstall.js +0 -16
  32. package/src/npm-scripts/postinstall.js +0 -18
@@ -0,0 +1,352 @@
1
+ ---
2
+ clusterName: "elasticsearch"
3
+ nodeGroup: "master"
4
+
5
+ # The service that non master groups will try to connect to when joining the cluster
6
+ # This should be set to clusterName + "-" + nodeGroup for your master group
7
+ masterService: ""
8
+
9
+ # Elasticsearch roles that will be applied to this nodeGroup
10
+ # These will be set as environment variables. E.g. node.master=true
11
+ roles:
12
+ master: "true"
13
+ ingest: "true"
14
+ data: "true"
15
+ remote_cluster_client: "true"
16
+ ml: "true"
17
+
18
+ replicas: 3
19
+ minimumMasterNodes: 2
20
+
21
+ esMajorVersion: ""
22
+
23
+ clusterDeprecationIndexing: "false"
24
+
25
+ # Allows you to add any config files in /usr/share/elasticsearch/config/
26
+ # such as elasticsearch.yml and log4j2.properties
27
+ esConfig: {}
28
+ # elasticsearch.yml: |
29
+ # key:
30
+ # nestedkey: value
31
+ # log4j2.properties: |
32
+ # key = value
33
+
34
+ esJvmOptions: {}
35
+ # processors.options: |
36
+ # -XX:ActiveProcessorCount=3
37
+
38
+ # Extra environment variables to append to this nodeGroup
39
+ # This will be appended to the current 'env:' key. You can use any of the kubernetes env
40
+ # syntax here
41
+ extraEnvs: []
42
+ # - name: MY_ENVIRONMENT_VAR
43
+ # value: the_value_goes_here
44
+
45
+ # Allows you to load environment variables from kubernetes secret or config map
46
+ envFrom: []
47
+ # - secretRef:
48
+ # name: env-secret
49
+ # - configMapRef:
50
+ # name: config-map
51
+
52
+ # A list of secrets and their paths to mount inside the pod
53
+ # This is useful for mounting certificates for security and for mounting
54
+ # the X-Pack license
55
+ secretMounts: []
56
+ # - name: elastic-certificates
57
+ # secretName: elastic-certificates
58
+ # path: /usr/share/elasticsearch/config/certs
59
+ # defaultMode: 0755
60
+
61
+ hostAliases: []
62
+ #- ip: "127.0.0.1"
63
+ # hostnames:
64
+ # - "foo.local"
65
+ # - "bar.local"
66
+
67
+ image: "docker.elastic.co/elasticsearch/elasticsearch"
68
+ imageTag: "7.16.3"
69
+ imagePullPolicy: "IfNotPresent"
70
+
71
+ podAnnotations:
72
+ {}
73
+ # iam.amazonaws.com/role: es-cluster
74
+
75
+ # additionals labels
76
+ labels: {}
77
+
78
+ esJavaOpts: "" # example: "-Xmx1g -Xms1g"
79
+
80
+ resources:
81
+ requests:
82
+ cpu: "1000m"
83
+ memory: "2Gi"
84
+ limits:
85
+ cpu: "1000m"
86
+ memory: "2Gi"
87
+
88
+ initResources:
89
+ {}
90
+ # limits:
91
+ # cpu: "25m"
92
+ # # memory: "128Mi"
93
+ # requests:
94
+ # cpu: "25m"
95
+ # memory: "128Mi"
96
+
97
+ networkHost: "0.0.0.0"
98
+
99
+ volumeClaimTemplate:
100
+ accessModes: ["ReadWriteOnce"]
101
+ resources:
102
+ requests:
103
+ storage: 30Gi
104
+
105
+ rbac:
106
+ create: false
107
+ serviceAccountAnnotations: {}
108
+ serviceAccountName: ""
109
+ automountToken: true
110
+
111
+ podSecurityPolicy:
112
+ create: false
113
+ name: ""
114
+ spec:
115
+ privileged: true
116
+ fsGroup:
117
+ rule: RunAsAny
118
+ runAsUser:
119
+ rule: RunAsAny
120
+ seLinux:
121
+ rule: RunAsAny
122
+ supplementalGroups:
123
+ rule: RunAsAny
124
+ volumes:
125
+ - secret
126
+ - configMap
127
+ - persistentVolumeClaim
128
+ - emptyDir
129
+
130
+ persistence:
131
+ enabled: true
132
+ labels:
133
+ # Add default labels for the volumeClaimTemplate of the StatefulSet
134
+ enabled: false
135
+ annotations: {}
136
+
137
+ extraVolumes:
138
+ []
139
+ # - name: extras
140
+ # emptyDir: {}
141
+
142
+ extraVolumeMounts:
143
+ []
144
+ # - name: extras
145
+ # mountPath: /usr/share/extras
146
+ # readOnly: true
147
+
148
+ extraContainers:
149
+ []
150
+ # - name: do-something
151
+ # image: busybox
152
+ # command: ['do', 'something']
153
+
154
+ extraInitContainers:
155
+ []
156
+ # - name: do-something
157
+ # image: busybox
158
+ # command: ['do', 'something']
159
+
160
+ # This is the PriorityClass settings as defined in
161
+ # https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass
162
+ priorityClassName: ""
163
+
164
+ # By default this will make sure two pods don't end up on the same node
165
+ # Changing this to a region would allow you to spread pods across regions
166
+ antiAffinityTopologyKey: "kubernetes.io/hostname"
167
+
168
+ # Hard means that by default pods will only be scheduled if there are enough nodes for them
169
+ # and that they will never end up on the same node. Setting this to soft will do this "best effort"
170
+ antiAffinity: "hard"
171
+
172
+ # This is the node affinity settings as defined in
173
+ # https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#node-affinity-beta-feature
174
+ nodeAffinity: {}
175
+
176
+ # The default is to deploy all pods serially. By setting this to parallel all pods are started at
177
+ # the same time when bootstrapping the cluster
178
+ podManagementPolicy: "Parallel"
179
+
180
+ # The environment variables injected by service links are not used, but can lead to slow Elasticsearch boot times when
181
+ # there are many services in the current namespace.
182
+ # If you experience slow pod startups you probably want to set this to `false`.
183
+ enableServiceLinks: true
184
+
185
+ protocol: http
186
+ httpPort: 9200
187
+ transportPort: 9300
188
+
189
+ service:
190
+ enabled: true
191
+ labels: {}
192
+ labelsHeadless: {}
193
+ type: ClusterIP
194
+ nodePort: ""
195
+ annotations: {}
196
+ httpPortName: http
197
+ transportPortName: transport
198
+ loadBalancerIP: ""
199
+ loadBalancerSourceRanges: []
200
+ externalTrafficPolicy: ""
201
+
202
+ updateStrategy: RollingUpdate
203
+
204
+ # This is the max unavailable setting for the pod disruption budget
205
+ # The default value of 1 will make sure that kubernetes won't allow more than 1
206
+ # of your pods to be unavailable during maintenance
207
+ maxUnavailable: 1
208
+
209
+ podSecurityContext:
210
+ fsGroup: 1000
211
+ runAsUser: 1000
212
+
213
+ securityContext:
214
+ capabilities:
215
+ drop:
216
+ - ALL
217
+ # readOnlyRootFilesystem: true
218
+ runAsNonRoot: true
219
+ runAsUser: 1000
220
+
221
+ # How long to wait for elasticsearch to stop gracefully
222
+ terminationGracePeriod: 120
223
+
224
+ sysctlVmMaxMapCount: 262144
225
+
226
+ readinessProbe:
227
+ failureThreshold: 3
228
+ initialDelaySeconds: 10
229
+ periodSeconds: 10
230
+ successThreshold: 3
231
+ timeoutSeconds: 5
232
+
233
+ # https://www.elastic.co/guide/en/elasticsearch/reference/7.16/cluster-health.html#request-params wait_for_status
234
+ clusterHealthCheckParams: "wait_for_status=green&timeout=1s"
235
+
236
+ ## Use an alternate scheduler.
237
+ ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
238
+ ##
239
+ schedulerName: ""
240
+
241
+ imagePullSecrets: []
242
+ nodeSelector: {}
243
+ tolerations: []
244
+
245
+ # Enabling this will publicly expose your Elasticsearch instance.
246
+ # Only enable this if you have security enabled on your cluster
247
+ ingress:
248
+ enabled: false
249
+ annotations: {}
250
+ # kubernetes.io/ingress.class: nginx
251
+ # kubernetes.io/tls-acme: "true"
252
+ className: "nginx"
253
+ pathtype: ImplementationSpecific
254
+ hosts:
255
+ - host: chart-example.local
256
+ paths:
257
+ - path: /
258
+ tls: []
259
+ # - secretName: chart-example-tls
260
+ # hosts:
261
+ # - chart-example.local
262
+
263
+ nameOverride: ""
264
+ fullnameOverride: ""
265
+ healthNameOverride: ""
266
+
267
+ lifecycle:
268
+ {}
269
+ # preStop:
270
+ # exec:
271
+ # command: ["/bin/sh", "-c", "echo Hello from the postStart handler > /usr/share/message"]
272
+ # postStart:
273
+ # exec:
274
+ # command:
275
+ # - bash
276
+ # - -c
277
+ # - |
278
+ # #!/bin/bash
279
+ # # Add a template to adjust number of shards/replicas
280
+ # TEMPLATE_NAME=my_template
281
+ # INDEX_PATTERN="logstash-*"
282
+ # SHARD_COUNT=8
283
+ # REPLICA_COUNT=1
284
+ # ES_URL=http://localhost:9200
285
+ # while [[ "$(curl -s -o /dev/null -w '%{http_code}\n' $ES_URL)" != "200" ]]; do sleep 1; done
286
+ # curl -XPUT "$ES_URL/_template/$TEMPLATE_NAME" -H 'Content-Type: application/json' -d'{"index_patterns":['\""$INDEX_PATTERN"\"'],"settings":{"number_of_shards":'$SHARD_COUNT',"number_of_replicas":'$REPLICA_COUNT'}}'
287
+
288
+ sysctlInitContainer:
289
+ enabled: true
290
+
291
+ keystore: []
292
+
293
+ networkPolicy:
294
+ ## Enable creation of NetworkPolicy resources. Only Ingress traffic is filtered for now.
295
+ ## In order for a Pod to access Elasticsearch, it needs to have the following label:
296
+ ## {{ template "uname" . }}-client: "true"
297
+ ## Example for default configuration to access HTTP port:
298
+ ## elasticsearch-master-http-client: "true"
299
+ ## Example for default configuration to access transport port:
300
+ ## elasticsearch-master-transport-client: "true"
301
+
302
+ http:
303
+ enabled: false
304
+ ## if explicitNamespacesSelector is not set or set to {}, only client Pods being in the networkPolicy's namespace
305
+ ## and matching all criteria can reach the DB.
306
+ ## But sometimes, we want the Pods to be accessible to clients from other namespaces, in this case, we can use this
307
+ ## parameter to select these namespaces
308
+ ##
309
+ # explicitNamespacesSelector:
310
+ # # Accept from namespaces with all those different rules (only from whitelisted Pods)
311
+ # matchLabels:
312
+ # role: frontend
313
+ # matchExpressions:
314
+ # - {key: role, operator: In, values: [frontend]}
315
+ ## Additional NetworkPolicy Ingress "from" rules to set. Note that all rules are OR-ed.
316
+ ##
317
+ # additionalRules:
318
+ # - podSelector:
319
+ # matchLabels:
320
+ # role: frontend
321
+ # - podSelector:
322
+ # matchExpressions:
323
+ # - key: role
324
+ # operator: In
325
+ # values:
326
+ # - frontend
327
+
328
+ transport:
329
+ ## Note that all Elasticsearch Pods can talk to themselves using transport port even if enabled.
330
+ enabled: false
331
+ # explicitNamespacesSelector:
332
+ # matchLabels:
333
+ # role: frontend
334
+ # matchExpressions:
335
+ # - {key: role, operator: In, values: [frontend]}
336
+ # additionalRules:
337
+ # - podSelector:
338
+ # matchLabels:
339
+ # role: frontend
340
+ # - podSelector:
341
+ # matchExpressions:
342
+ # - key: role
343
+ # operator: In
344
+ # values:
345
+ # - frontend
346
+
347
+ tests:
348
+ enabled: true
349
+
350
+ # Deprecated
351
+ # please use the above podSecurityContext.fsGroup instead
352
+ fsGroup: ""
File without changes
@@ -0,0 +1,104 @@
1
+ # Foundation Chart: https://artifacthub.io/packages/helm/elastic/elasticsearch
2
+ #
3
+ # esJavaOpts: "" # example: "-Xmx1g -Xms1g"
4
+ #
5
+ # resources:
6
+ # requests:
7
+ # cpu: "1000m"
8
+ # memory: "2Gi"
9
+ # limits:
10
+ # cpu: "1000m"
11
+ # memory: "2Gi"
12
+
13
+ global:
14
+ storageClass: "ssd"
15
+
16
+ fullnameOverride: "elasticsearch8"
17
+ namespaceOverride: "elastic"
18
+
19
+ coordinating:
20
+ replicaCount: 3
21
+ affinity:
22
+ nodeAffinity:
23
+ requiredDuringSchedulingIgnoredDuringExecution:
24
+ nodeSelectorTerms:
25
+ - matchExpressions:
26
+ - key: target-env
27
+ operator: In
28
+ values:
29
+ - elastic-v8
30
+ tolerations:
31
+ - key: "elastic"
32
+ operator: "Equal"
33
+ value: "true"
34
+ effect: "NoSchedule"
35
+
36
+ data:
37
+ replicaCount: 3
38
+ resources:
39
+ requests:
40
+ cpu: 2
41
+ memory: 4Gi
42
+ persistence:
43
+ enabled: true
44
+ size: 64Gi
45
+ affinity:
46
+ nodeAffinity:
47
+ requiredDuringSchedulingIgnoredDuringExecution:
48
+ nodeSelectorTerms:
49
+ - matchExpressions:
50
+ - key: target-env
51
+ operator: In
52
+ values:
53
+ - elastic-v8
54
+ tolerations:
55
+ - key: "elastic"
56
+ operator: "Equal"
57
+ value: "true"
58
+ effect: "NoSchedule"
59
+
60
+ ingest:
61
+ replicaCount: 3
62
+ affinity:
63
+ nodeAffinity:
64
+ requiredDuringSchedulingIgnoredDuringExecution:
65
+ nodeSelectorTerms:
66
+ - matchExpressions:
67
+ - key: target-env
68
+ operator: In
69
+ values:
70
+ - elastic-v8
71
+ tolerations:
72
+ - key: "elastic"
73
+ operator: "Equal"
74
+ value: "true"
75
+ effect: "NoSchedule"
76
+
77
+ master:
78
+ replicaCount: 3
79
+ affinity:
80
+ nodeAffinity:
81
+ requiredDuringSchedulingIgnoredDuringExecution:
82
+ nodeSelectorTerms:
83
+ - matchExpressions:
84
+ - key: target-env
85
+ operator: In
86
+ values:
87
+ - elastic-v8
88
+ tolerations:
89
+ - key: "elastic"
90
+ operator: "Equal"
91
+ value: "true"
92
+ effect: "NoSchedule"
93
+
94
+ # RecovR Prd Settings - very beefy on an n2-standard-8
95
+ #
96
+ # esJavaOpts: "-Xmx8g -Xms8g"
97
+ #
98
+ # resources:
99
+ # requests:
100
+ # cpu: "6250m"
101
+ # memory: "16Gi"
102
+ # limits:
103
+ # cpu: "6750m"
104
+ # memory: "20Gi"
@@ -0,0 +1,14 @@
1
+ #!/bin/bash
2
+ #
3
+ showInstalling "Elastic Search 8"
4
+
5
+ LOCAL_ES_VALUES="elasticsearch8/elasticsearch-local.yaml"
6
+ [ ! -f "$LOCAL_ES_VALUES" ] && exitOnError 1 "Missing the local ES config file => `color y $LOCAL_ES_VALUES`"
7
+
8
+ addBitnamiRepo latest
9
+ helm upgrade --install elasticsearch8 bitnami/elasticsearch \
10
+ --namespace elastic --create-namespace \
11
+ --version 19.10 \
12
+ --values $LOCAL_ES_VALUES $HELM_WHAT
13
+
14
+ removeHelmRepo bitnami
package/src/helmdn CHANGED
@@ -42,15 +42,16 @@ PLATFORM=(
42
42
  authz-server
43
43
  db-curator
44
44
  emailer
45
+ fota-server
45
46
  geotile-server
46
47
  imagine
47
48
  message-processor
48
49
  messenger
49
50
  reason
50
51
  resource-server
52
+ rule-engine
51
53
  scheduler
52
54
  transponder-bq
53
- transponder-postgres
54
55
  transponder-tsdb
55
56
  transponder-rt
56
57
  pubsub-pulse
package/src/helmup CHANGED
@@ -595,7 +595,7 @@ DEPRECATED_CHART
595
595
  exit 1
596
596
  fi
597
597
 
598
- # check for the top level Charts.json file
598
+ # check for the top level Versions.json file
599
599
  local VERSIONS="./Versions.json"
600
600
  if [ -f "$VERSIONS" ];
601
601
  then
@@ -658,7 +658,7 @@ function doInstall() {
658
658
  kubectl create -f https://raw.githubusercontent.com/GoogleCloudPlatform/k8s-stackdriver/master/custom-metrics-stackdriver-adapter/deploy/production/adapter.yaml
659
659
  ;;
660
660
 
661
- "elasticsearch") # simple 3 master cluster
661
+ "elasticsearch") # simple 3 master v7.16 cluster
662
662
  bootstrapLocalSetup $SERVICE
663
663
  ;;
664
664
 
@@ -666,6 +666,10 @@ function doInstall() {
666
666
  bootstrapLocalSetup $SERVICE
667
667
  ;;
668
668
 
669
+ "elasticsearch8") # complex master/data/client ES v8 cluster
670
+ bootstrapLocalSetup $SERVICE
671
+ ;;
672
+
669
673
  "estafette"|"preemptible-killer")
670
674
  installPreemptibleKiller # the gke preemptible node spreader outer
671
675
  ;;
package/src/overwhelm.js CHANGED
@@ -188,10 +188,8 @@ const doReplacements = ( yamls, replacements ) => {
188
188
  return replYaml
189
189
  }
190
190
 
191
- // Collect all of the yaml from the yams, and always expect the default and
192
- // platform yamls to be in that list.
191
+ // Collect all of the yaml from the yams...
193
192
  const buildYaml = ( yamls, replacements ) => {
194
- // We always start with default but values-platform is no longer needed.
195
193
  const always = [ 'values-default.yaml' ]
196
194
  const values = [ ...always, ...yamls ]
197
195
  const loaded = []
@@ -264,7 +262,7 @@ ahoy.forEach( ( dir ) => {
264
262
  // Augment the default service section of the YAML with settings that
265
263
  // usually come from the top level overwhelm.yaml file.
266
264
  //
267
- const valuesAll = YAML.load( valuesOut )
265
+ const valuesAll = YAML.load( valuesOut ) || {}
268
266
  const valuesSvc = {
269
267
  service : {
270
268
  project_id : 'OVH:<PROJECT_ID>',
@@ -1,15 +0,0 @@
1
- {
2
- "eslint.alwaysShowStatus": true,
3
- "[javascript]": {
4
- "editor.codeActionsOnSave": {
5
- "source.fixAll.eslint": true,
6
- "source.organizeImports": false
7
- }
8
- },
9
- "[javascriptreact]": {
10
- "editor.codeActionsOnSave": {
11
- "source.fixAll.eslint": true,
12
- "source.organizeImports": false
13
- }
14
- },
15
- }
@@ -1,16 +0,0 @@
1
- #!/usr/bin/env node
2
- "use strict";
3
-
4
- const execa = require('execa');
5
- const fs = require('fs');
6
- const untarConfigTarball = async (subdir, tarball) => {
7
- if (fs.existsSync(subdir)) {
8
- process.chdir(subdir);
9
- await execa('ls');
10
- await execa('tar', ['xf', tarball]);
11
- }
12
- };
13
- const awaiter = async (subdir, tarball) => {
14
- await untarConfigTarball(subdir, tarball);
15
- };
16
- awaiter('lib/server/repo-init', 'config.tgz');
@@ -1,16 +0,0 @@
1
- #!/usr/bin/env node
2
- "use strict";
3
-
4
- const execa = require('execa');
5
- const fs = require('fs');
6
- const untarConfigTarball = async (subdir, tarball) => {
7
- if (fs.existsSync(subdir)) {
8
- process.chdir(subdir);
9
- await execa('ls');
10
- await execa('tar', ['xf', tarball]);
11
- }
12
- };
13
- const awaiter = async (subdir, tarball) => {
14
- await untarConfigTarball(subdir, tarball);
15
- };
16
- awaiter('lib/server/repo-init', 'config.tgz');
@@ -1,18 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- const execa = require( 'execa' )
4
- const fs = require( 'fs' )
5
-
6
- const untarConfigTarball = async ( subdir, tarball ) => {
7
- if ( fs.existsSync( subdir ) ) {
8
- process.chdir( subdir )
9
- await execa( 'ls' )
10
- await execa( 'tar', [ 'xf', tarball ] )
11
- }
12
- }
13
-
14
- const awaiter = async ( subdir, tarball ) => {
15
- await untarConfigTarball( subdir, tarball )
16
- }
17
-
18
- awaiter( 'lib/server/repo-init', 'config.tgz' )