apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: metering-server
  namespace : observability
spec:
  replicas: 1
  selector:
    matchLabels:
      app: metering-server
  template:
    metadata:
      labels:
        app: metering-server
    spec:
      nodeSelector:
        node_type: "worker"
      volumes:
        - name: meteringconfig
          configMap:
            name: meteringconfig
      containers:
        - image: o11-prod-repo-registry.ap-southeast-1.cr.aliyuncs.com/prod/observability-regional-metering-server:v29
          args: [ "--vendor=alicloud" ]
          name: metering-server
          imagePullPolicy: Always
          ports:
            - containerPort: 8081
          resources:
            limits:
              cpu: 1000m
              memory: 3Gi
            requests:
              cpu: 500m
              memory: 1Gi
          volumeMounts:
            - name: meteringconfig
              mountPath: /config/
            - name: data
              mountPath: /data/
      terminationGracePeriodSeconds: 10
      serviceAccountName: regional-server-controller-manager
  volumeClaimTemplates:
    - apiVersion: v1
      kind: PersistentVolumeClaim
      metadata:
        creationTimestamp: null
        name: data
      spec:
        accessModes:
          - ReadWriteOnce
        resources:
          requests:
            storage: 50Gi
        storageClassName: prometheus.ssd
        volumeMode: Filesystem
      status:
        phase: Pending

---
apiVersion: v1
kind: Service
metadata:
  namespace: observability
  name: regional-metering-service
spec:
  ports:
    - name: http
      port: 8081
      targetPort: 8081
      protocol: TCP
  type: ClusterIP
  selector:
    app: metering-server
