apiVersion: v1
kind: ConfigMap
metadata:
  name: load-data-worker-config
  namespace: tidb-serverless
data:
  load-data-worker.toml: |
    enable-load-data-check-point = true
    report-wru = true
    [worker-scaler]
    max-size = 17592186044416
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: load-data-worker
  namespace: tidb-serverless
spec:
  replicas: 0
  serviceName: load-data-worker
  selector:
    matchLabels:
      app.kubernetes.io/name: load-data-worker
  template:
    metadata:
      annotations:
        cluster-autoscaler.kubernetes.io/safe-to-evict: "false"
        prometheus.io/path: /metrics
        prometheus.io/port: "19500"
        prometheus.io/scrape: "true"
      labels:
        app: load-data-worker
        app.kubernetes.io/name: load-data-worker
        app.kubernetes.io/component: load-data-worker
        zr-evicter.tidbcloud.com/pvc-evictable: "false"
    spec:
      imagePullSecrets:
        - name: cp9-ecr-pull-385595570414
      nodeSelector:
        cp9.tidbcloud.com/starter-role: tidb-serving
      tolerations:
        - key: cp9.tidbcloud.com/starter-role
          operator: Equal
          value: tidb-serving
          effect: NoSchedule
      serviceAccountName: serverless-controller
      containers:
        - name: load-data-worker
          image: 385595570414.dkr.ecr.us-west-2.amazonaws.com/tidbcloud/serverless/tikv:5b7adce957a177fdebfa4e32740f31ca92301195
          imagePullPolicy: IfNotPresent
          command:
            - /tikv-worker
            - --config
            - /etc/config/load-data-worker.toml
            - --addr
            - 0.0.0.0:19500
            - --pd-endpoints
            - serverless-cluster-pd.tidb-serverless.svc:2379
            - --data-dir
            - /data0
            - --cacert
            - /server-cert/ca.crt
            - --cert
            - /server-cert/tls.crt
            - --key
            - /server-cert/tls.key
            - --push-metrics-addr=http://serverless-metering.serverless-metering:9091
            - --push-metrics-interval=30
          env:
            - name: DFS_PREFIX
              value: CP9_STARTER_SERVERLESS_PREFIX
            - name: DFS_S3_BUCKET
              value: CP9_STARTER_SERVERLESS_BUCKET
            - name: DFS_S3_REGION
              value: CP9_STARTER_SERVERLESS_REGION
            - name: CSE_MASTER_KEY_ID
              value: CP9_STARTER_CSE_MASTER_KEY_ID
            - name: CSE_MASTER_KEY_CIPHER_TEXT
              value: CP9_STARTER_CSE_KEY_CIPHERTEXT
            - name: CSE_MASTER_KEY_VENDOR
              value: CP9_STARTER_CSE_KEY_VENDOR
            - name: CONTAINER_NAME
              valueFrom:
                fieldRef:
                  fieldPath: metadata.name
            - name: MALLOC_CONF
              value: prof:true
            - name: CA_PATH
              value: /server-cert/ca.crt
            - name: CERT_PATH
              value: /server-cert/tls.crt
            - name: KEY_PATH
              value: /server-cert/tls.key
          resources:
            limits:
              cpu: "4"
              memory: 16Gi
            requests:
              cpu: 500m
              memory: 2Gi
          ports:
            - name: http
              containerPort: 19500
          volumeMounts:
            - name: data0
              mountPath: /data0
            - name: config-volume
              mountPath: /etc/config
            - name: server-cert
              mountPath: /server-cert
      volumes:
        - name: config-volume
          configMap:
            name: load-data-worker-config
            items:
              - key: load-data-worker.toml
                path: load-data-worker.toml
        - name: server-cert
          secret:
            secretName: load-data-worker-cluster-secret
  volumeClaimTemplates:
    - apiVersion: v1
      kind: PersistentVolumeClaim
      metadata:
        name: data0
      spec:
        accessModes:
          - ReadWriteOnce
        resources:
          requests:
            storage: 10Gi
        storageClassName: gp3-500
        volumeMode: Filesystem
