# Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. apiVersion: apps/v1 kind: StatefulSet metadata: name: monitoringdb spec: selector: matchLabels: app: monitoringservice serviceName: "monitoringservice" replicas: 1 template: metadata: labels: app: monitoringservice spec: terminationGracePeriodSeconds: 5 restartPolicy: Always containers: - name: metricsdb image: questdb/questdb ports: - name: http containerPort: 9000 protocol: TCP - name: influxdb containerPort: 9009 protocol: TCP - name: postgre containerPort: 8812 protocol: TCP env: - name: QDB_CAIRO_COMMIT_LAG value: "1000" - name: QDB_CAIRO_MAX_UNCOMMITTED_ROWS value: "100000" --- apiVersion: apps/v1 kind: Deployment metadata: name: monitoringserver spec: selector: matchLabels: app: monitoringservice replicas: 1 template: metadata: labels: app: monitoringservice spec: terminationGracePeriodSeconds: 5 restartPolicy: Always containers: - name: server image: registry.gitlab.com/teraflow-h2020/controller/monitoring:latest imagePullPolicy: Always ports: - name: grpc containerPort: 7070 protocol: TCP env: - name: LOG_LEVEL value: "INFO" - name: METRICSDB_HOSTNAME value: "monitoringservice" - name: METRICSDB_ILP_PORT value: "9009" - name: METRICSDB_REST_PORT value: "9000" - name: METRICSDB_TABLE value: "monitoring" readinessProbe: grpc: port: 7070 initialDelaySeconds: 5 livenessProbe: grpc: port: 7070 initialDelaySeconds: 10 --- apiVersion: v1 kind: Service metadata: name: monitoringservice spec: type: ClusterIP selector: app: monitoringservice ports: - name: grpc protocol: TCP port: 7070 targetPort: 7070 - name: http protocol: TCP port: 9000 targetPort: 9000 - name: influxdb protocol: TCP port: 9009 targetPort: 9009 - name: postgre protocol: TCP port: 8812 targetPort: 8812 --- apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: access-monitoring spec: podSelector: matchLabels: app: monitoringservice ingress: - from: [] ports: - port: 7070 - port: 8812 - from: - podSelector: matchLabels: app: monitoringservice ports: - port: 9009 - port: 9000