# 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: monitoringservice spec: selector: matchLabels: app: monitoringservice replicas: 1 template: metadata: labels: app: monitoringservice spec: terminationGracePeriodSeconds: 5 restartPolicy: Always containers: - name: server image: labs.etsi.org:5050/tfs/controller/monitoring:latest imagePullPolicy: Always ports: - name: grpc containerPort: 7070 protocol: TCP - name: metrics containerPort: 9192 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: exec: command: ["/bin/grpc_health_probe", "-addr=:7070"] livenessProbe: exec: command: ["/bin/grpc_health_probe", "-addr=:7070"] resources: requests: cpu: 250m memory: 512Mi limits: cpu: 700m memory: 1024Mi --- apiVersion: v1 kind: Service metadata: name: monitoringservice labels: app: 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 - name: metrics protocol: TCP port: 9192 targetPort: 9192 --- 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