@yarkivaev/scada 2.3.112 → 2.3.113

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.
@@ -2,5 +2,5 @@ apiVersion: v2
2
2
  name: scada
3
3
  description: Generic SCADA site — site-server, supervisor-sink, collectors, Postgres, RabbitMQ, optional ClickHouse
4
4
  type: application
5
- version: 0.2.1
6
- appVersion: "2.3.112"
5
+ version: 0.2.3
6
+ appVersion: "2.3.113"
@@ -2,6 +2,31 @@
2
2
  app.kubernetes.io/name: scada
3
3
  app.kubernetes.io/instance: {{ .Release.Name }}
4
4
  app.kubernetes.io/managed-by: {{ .Release.Service }}
5
+ {{- include "scada.extraLabels" . }}
6
+ {{- end }}
7
+
8
+ {{- define "scada.extraLabels" -}}
9
+ {{- range $key, $val := (.Values.extraLabels | default dict) }}
10
+ {{ $key }}: {{ $val | quote }}
11
+ {{- end }}
12
+ {{- end }}
13
+
14
+ {{- define "scada.match" -}}
15
+ app: {{ .app }}
16
+ {{- range $key, $val := (.ctx.Values.extraLabels | default dict) }}
17
+ {{ $key }}: {{ $val | quote }}
18
+ {{- end }}
19
+ {{- end }}
20
+
21
+ {{- define "scada.claim" -}}
22
+ accessModes: ["ReadWriteOnce"]
23
+ {{- if .class }}
24
+ storageClassName: {{ .class | quote }}
25
+ {{- end }}
26
+ resources:
27
+ requests:
28
+ storage: {{ .size | quote }}
29
+ volumeMode: Filesystem
5
30
  {{- end }}
6
31
 
7
32
  {{- define "scada.device" -}}
@@ -12,9 +12,14 @@ spec:
12
12
  - name: http
13
13
  port: 8123
14
14
  targetPort: http
15
+ - name: native
16
+ port: 9000
17
+ targetPort: native
18
+ - name: metrics
19
+ port: 9363
20
+ targetPort: metrics
15
21
  selector:
16
- app: clickhouse
17
- app.kubernetes.io/instance: {{ .Release.Name }}
22
+ {{- include "scada.match" (dict "app" "clickhouse" "ctx" .) | nindent 4 }}
18
23
  ---
19
24
  apiVersion: apps/v1
20
25
  kind: StatefulSet
@@ -29,13 +34,12 @@ spec:
29
34
  replicas: 1
30
35
  selector:
31
36
  matchLabels:
32
- app: clickhouse
33
- app.kubernetes.io/instance: {{ .Release.Name }}
37
+ {{- include "scada.match" (dict "app" "clickhouse" "ctx" .) | nindent 6 }}
34
38
  template:
35
39
  metadata:
36
40
  labels:
37
41
  {{- include "scada.labels" . | nindent 8 }}
38
- app: clickhouse
42
+ {{- include "scada.match" (dict "app" "clickhouse" "ctx" .) | nindent 8 }}
39
43
  spec:
40
44
  containers:
41
45
  - name: clickhouse
@@ -43,6 +47,10 @@ spec:
43
47
  ports:
44
48
  - name: http
45
49
  containerPort: 8123
50
+ - name: native
51
+ containerPort: 9000
52
+ - name: metrics
53
+ containerPort: 9363
46
54
  volumeMounts:
47
55
  - name: data
48
56
  mountPath: /var/lib/clickhouse
@@ -50,8 +58,5 @@ spec:
50
58
  - metadata:
51
59
  name: data
52
60
  spec:
53
- accessModes: ["ReadWriteOnce"]
54
- resources:
55
- requests:
56
- storage: 20Gi
61
+ {{- include "scada.claim" (dict "size" .Values.clickhouse.storage "class" .Values.clickhouse.storageClass) | nindent 8 }}
57
62
  {{- end }}
@@ -62,14 +62,13 @@ spec:
62
62
  replicas: 1
63
63
  selector:
64
64
  matchLabels:
65
- app: collector
66
- app.kubernetes.io/instance: {{ $.Release.Name }}
65
+ {{- include "scada.match" (dict "app" "collector" "ctx" $) | nindent 6 }}
67
66
  scada/command: {{ $slug }}
68
67
  template:
69
68
  metadata:
70
69
  labels:
71
70
  {{- include "scada.labels" $ | nindent 8 }}
72
- app: collector
71
+ {{- include "scada.match" (dict "app" "collector" "ctx" $) | nindent 8 }}
73
72
  scada/command: {{ $slug }}
74
73
  spec:
75
74
  {{- with $.Values.pullSecret }}
@@ -13,8 +13,7 @@ spec:
13
13
  port: 5432
14
14
  targetPort: postgres
15
15
  selector:
16
- app: postgres
17
- app.kubernetes.io/instance: {{ .Release.Name }}
16
+ {{- include "scada.match" (dict "app" "postgres" "ctx" .) | nindent 4 }}
18
17
  ---
19
18
  apiVersion: apps/v1
20
19
  kind: StatefulSet
@@ -29,13 +28,12 @@ spec:
29
28
  replicas: 1
30
29
  selector:
31
30
  matchLabels:
32
- app: postgres
33
- app.kubernetes.io/instance: {{ .Release.Name }}
31
+ {{- include "scada.match" (dict "app" "postgres" "ctx" .) | nindent 6 }}
34
32
  template:
35
33
  metadata:
36
34
  labels:
37
35
  {{- include "scada.labels" . | nindent 8 }}
38
- app: postgres
36
+ {{- include "scada.match" (dict "app" "postgres" "ctx" .) | nindent 8 }}
39
37
  spec:
40
38
  containers:
41
39
  - name: postgres
@@ -56,6 +54,8 @@ spec:
56
54
  secretKeyRef:
57
55
  name: {{ .Values.postgres.secret }}
58
56
  key: password
57
+ - name: PGDATA
58
+ value: {{ .Values.postgres.data | quote }}
59
59
  volumeMounts:
60
60
  - name: data
61
61
  mountPath: /var/lib/postgresql/data
@@ -63,8 +63,5 @@ spec:
63
63
  - metadata:
64
64
  name: data
65
65
  spec:
66
- accessModes: ["ReadWriteOnce"]
67
- resources:
68
- requests:
69
- storage: 10Gi
66
+ {{- include "scada.claim" (dict "size" .Values.postgres.storage "class" .Values.postgres.storageClass) | nindent 8 }}
70
67
  {{- end }}
@@ -85,19 +85,38 @@ metadata:
85
85
  {{- include "scada.labels" . | nindent 4 }}
86
86
  app: rabbitmq
87
87
  spec:
88
+ {{- $svc := .Values.rabbitmq.service | default dict }}
89
+ type: {{ $svc.type | default "ClusterIP" }}
88
90
  ports:
89
91
  - name: amqp
90
92
  port: 5672
91
93
  targetPort: amqp
94
+ {{- with $svc.nodePorts }}
95
+ {{- if .amqp }}
96
+ nodePort: {{ .amqp }}
97
+ {{- end }}
98
+ {{- end }}
92
99
  - name: mqtt
93
100
  port: 1883
94
101
  targetPort: mqtt
95
102
  - name: stomp
96
103
  port: 61613
97
104
  targetPort: stomp
105
+ {{- with $svc.nodePorts }}
106
+ {{- if .stomp }}
107
+ nodePort: {{ .stomp }}
108
+ {{- end }}
109
+ {{- end }}
110
+ - name: management
111
+ port: 15672
112
+ targetPort: management
113
+ {{- with $svc.nodePorts }}
114
+ {{- if .management }}
115
+ nodePort: {{ .management }}
116
+ {{- end }}
117
+ {{- end }}
98
118
  selector:
99
- app: rabbitmq
100
- app.kubernetes.io/instance: {{ .Release.Name }}
119
+ {{- include "scada.match" (dict "app" "rabbitmq" "ctx" .) | nindent 4 }}
101
120
  ---
102
121
  apiVersion: apps/v1
103
122
  kind: StatefulSet
@@ -112,13 +131,12 @@ spec:
112
131
  replicas: 1
113
132
  selector:
114
133
  matchLabels:
115
- app: rabbitmq
116
- app.kubernetes.io/instance: {{ .Release.Name }}
134
+ {{- include "scada.match" (dict "app" "rabbitmq" "ctx" .) | nindent 6 }}
117
135
  template:
118
136
  metadata:
119
137
  labels:
120
138
  {{- include "scada.labels" . | nindent 8 }}
121
- app: rabbitmq
139
+ {{- include "scada.match" (dict "app" "rabbitmq" "ctx" .) | nindent 8 }}
122
140
  spec:
123
141
  containers:
124
142
  - name: rabbitmq
@@ -130,9 +148,18 @@ spec:
130
148
  containerPort: 1883
131
149
  - name: stomp
132
150
  containerPort: 61613
151
+ - name: management
152
+ containerPort: 15672
133
153
  volumeMounts:
134
154
  - name: config
135
- mountPath: /etc/rabbitmq
155
+ mountPath: /etc/rabbitmq/enabled_plugins
156
+ subPath: enabled_plugins
157
+ - name: config
158
+ mountPath: /etc/rabbitmq/rabbitmq.conf
159
+ subPath: rabbitmq.conf
160
+ - name: config
161
+ mountPath: /etc/rabbitmq/definitions.json
162
+ subPath: definitions.json
136
163
  - name: data
137
164
  mountPath: /var/lib/rabbitmq
138
165
  volumes:
@@ -143,8 +170,5 @@ spec:
143
170
  - metadata:
144
171
  name: data
145
172
  spec:
146
- accessModes: ["ReadWriteOnce"]
147
- resources:
148
- requests:
149
- storage: 5Gi
173
+ {{- include "scada.claim" (dict "size" .Values.rabbitmq.storage "class" .Values.rabbitmq.storageClass) | nindent 8 }}
150
174
  {{- end }}
@@ -10,13 +10,12 @@ spec:
10
10
  replicas: 1
11
11
  selector:
12
12
  matchLabels:
13
- app: site-server
14
- app.kubernetes.io/instance: {{ .Release.Name }}
13
+ {{- include "scada.match" (dict "app" "site-server" "ctx" .) | nindent 6 }}
15
14
  template:
16
15
  metadata:
17
16
  labels:
18
17
  {{- include "scada.labels" . | nindent 8 }}
19
- app: site-server
18
+ {{- include "scada.match" (dict "app" "site-server" "ctx" .) | nindent 8 }}
20
19
  spec:
21
20
  {{- with .Values.pullSecret }}
22
21
  imagePullSecrets:
@@ -85,8 +84,7 @@ spec:
85
84
  port: {{ .Values.service.internalPort }}
86
85
  targetPort: internal-api
87
86
  selector:
88
- app: site-server
89
- app.kubernetes.io/instance: {{ .Release.Name }}
87
+ {{- include "scada.match" (dict "app" "site-server" "ctx" .) | nindent 4 }}
90
88
  {{- if gt (int .Values.service.nodePort) 0 }}
91
89
  ---
92
90
  apiVersion: v1
@@ -105,6 +103,5 @@ spec:
105
103
  targetPort: http
106
104
  nodePort: {{ .Values.service.nodePort }}
107
105
  selector:
108
- app: site-server
109
- app.kubernetes.io/instance: {{ .Release.Name }}
106
+ {{- include "scada.match" (dict "app" "site-server" "ctx" .) | nindent 4 }}
110
107
  {{- end }}
@@ -10,13 +10,12 @@ spec:
10
10
  replicas: 1
11
11
  selector:
12
12
  matchLabels:
13
- app: supervisor-sink
14
- app.kubernetes.io/instance: {{ .Release.Name }}
13
+ {{- include "scada.match" (dict "app" "supervisor-sink" "ctx" .) | nindent 6 }}
15
14
  template:
16
15
  metadata:
17
16
  labels:
18
17
  {{- include "scada.labels" . | nindent 8 }}
19
- app: supervisor-sink
18
+ {{- include "scada.match" (dict "app" "supervisor-sink" "ctx" .) | nindent 8 }}
20
19
  spec:
21
20
  {{- with .Values.pullSecret }}
22
21
  imagePullSecrets:
@@ -60,5 +59,4 @@ spec:
60
59
  port: {{ .Values.service.internalPort }}
61
60
  targetPort: state
62
61
  selector:
63
- app: supervisor-sink
64
- app.kubernetes.io/instance: {{ .Release.Name }}
62
+ {{- include "scada.match" (dict "app" "supervisor-sink" "ctx" .) | nindent 4 }}
@@ -6,6 +6,7 @@ machines: []
6
6
  sites: []
7
7
  collectors: []
8
8
  env: []
9
+ extraLabels: {}
9
10
  service:
10
11
  port: 3000
11
12
  internalPort: 8081
@@ -15,12 +16,21 @@ postgres:
15
16
  image: postgres:16
16
17
  secret: scada-postgres
17
18
  database: scada
19
+ storage: 10Gi
20
+ storageClass: ""
21
+ data: /var/lib/postgresql/data/pgdata
18
22
  rabbitmq:
19
23
  enabled: true
20
24
  image: rabbitmq:3.13-management
25
+ storage: 5Gi
26
+ storageClass: ""
27
+ service:
28
+ type: ClusterIP
21
29
  clickhouse:
22
30
  enabled: false
23
31
  image: clickhouse/clickhouse-server:24.8
32
+ storage: 20Gi
33
+ storageClass: ""
24
34
  resources:
25
35
  requests:
26
36
  cpu: 100m
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yarkivaev/scada",
3
- "version": "2.3.112",
3
+ "version": "2.3.113",
4
4
  "description": "SCADA domain objects, state persistence, and plant monitoring",
5
5
  "repository": {
6
6
  "type": "git",