apiVersion: v1
kind: "Service"
metadata:
  name: as-pushgateway
  namespace: tiflash-autoscale
  labels:
    name: as-pushgateway
  annotations:
    pulumi.com/skipAwait: "true"
spec:
  ports:
  - name: as-pushgateway
    protocol: TCP
    port: 9091
    targetPort: 9091
  selector:
    app: as-pushgateway
  # type: NodePort
---
apiVersion: v1
kind: Service
metadata:
  namespace: tiflash-autoscale
  name: as-pushgateway-headless
  labels:
    app: as-pushgateway
spec:
  ports:
  - port: 9091
    name: pushgw
  clusterIP: None
  selector:
    app: as-pushgateway
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  namespace: tiflash-autoscale
  labels:
    name: as-pushgateway
  name: as-pushgateway
spec:
  replicas: 1
  serviceName: "as-pushgateway-headless"
  selector:
    matchLabels:
      app: as-pushgateway # has to match .spec.template.metadata.labels
  template:
    metadata:
      labels:
        app: as-pushgateway
    spec:
      affinity:
        nodeAffinity:  ##serverless speical!!!
          requiredDuringSchedulingIgnoredDuringExecution: ##serverless speical!!!
            nodeSelectorTerms:
            - matchExpressions:
              - key: tiflash.used-for-compute
                operator: NotIn
                values:
                - "true"
      securityContext:
        fsGroup: 2000
      containers:
      - name: pushgateway
        image: padding-image
        command:
        - "/bin/pushgateway"
        args:
        - "--persistence.file=/data0/pushgw.dat"
        - "--persistence.interval=1m"
        ports:
        - containerPort: 9091
          protocol: TCP
        volumeMounts:
            - mountPath: /data0
              name: data0
  volumeClaimTemplates:
    - apiVersion: v1
      kind: PersistentVolumeClaim
      metadata:
        name: data0
      spec:
        accessModes:
          - ReadWriteOnce
        resources:
          requests:
            storage: 10Gi
        storageClassName: ebs-sc
        volumeMode: Filesystem