apiVersion: apps/v1
kind: StatefulSet
metadata:
  labels:
    app: o11ydiagnosis-deltalake
  name: o11ydiagnosis-deltalake
  namespace: observability
spec:
  persistentVolumeClaimRetentionPolicy:
    whenDeleted: Retain
    whenScaled: Retain
  podManagementPolicy: OrderedReady
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app: o11ydiagnosis-deltalake
  serviceName: o11ydiagnosis-deltalake-service
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: o11ydiagnosis-deltalake
    spec:
      affinity:
        podAntiAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
          - labelSelector: 
              matchExpressions:
              - key: app
                operator: In
                values:
                - o11ydiagnosis-deltalake
            topologyKey: "kubernetes.io/hostname"
      containers:
      - command:
        - python
        - o11ydiagnosis/engine/engine.py
        env:
        - name: POD_NUMBER
          valueFrom:
            fieldRef:
              fieldPath: metadata.labels['statefulset.kubernetes.io/pod-name']
        - name: TOTAL_REPLICAS
          value: "1"
        - name: CACHE_ROOT
          value: /data
        - name: LOCAL_DEV
          value: "False"
        - name: START_TIMESTEMP
          value: "1748736000"
        - name: AZURE_TENANT_ID
          value: 6c865c34-8ff8-4792-bbca-8c9d15efb29d
        - name: AZURE_CLIENT_ID
          value: 1d1a31c8-a968-4924-8917-a01a32a5107d
        - name: AZURE_FEDERATED_TOKEN_FILE
          value: /var/run/secrets/azure/tokens/azure-identity-token
        - name: AZURE_AUTHORITY_HOST
          value: https://login.microsoftonline.com/
        - name: STORAGE_ACCOUNT_NAME
          value: o11yprodeastus2
        - name: REMOTE_PROVIDER
          value: azure
        - name: PROVIDER
          value: azure
        - name: BUCKET_NAME
          value: o11y-prod-shared-eastus2
        - name: USE_LOCAL_LOADER
          value: "False"
        - name: ENGINE_ID
          value: dedicated
        - name: ENV
          value: prod
        image: o11yprod.azurecr.io/o11ydiagnosis:deltalake-v73
        imagePullPolicy: Always
        name: o11ydiagnosis-deltalake
        ports:
          - containerPort: 8000
            name: http-metrics
        resources:
          limits:
            cpu: "2"
            memory: 7Gi
          requests:
            cpu: "2"
            memory: 4Gi
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - mountPath: /data
          name: o11ydiagnosis-deltalake-data
        - mountPath: /var/run/secrets/azure/tokens
          name: azure-identity-token
          readOnly: true
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      serviceAccount: regional-server-controller-manager
      serviceAccountName: regional-server-controller-manager
      terminationGracePeriodSeconds: 30
      volumes:
      - name: azure-identity-token
        projected:
          defaultMode: 420
          sources:
          - serviceAccountToken:
              audience: api://AzureADTokenExchange
              expirationSeconds: 3600
              path: azure-identity-token
  updateStrategy:
    rollingUpdate:
      partition: 0
    type: RollingUpdate
  volumeClaimTemplates:
  - apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      creationTimestamp: null
      labels:
        app: o11ydiagnosis-deltalake
      name: o11ydiagnosis-deltalake-data
    spec:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 20Gi
      storageClassName: vmcluster-storage
      volumeMode: Filesystem
    status:
      phase: Pending
