apiVersion: apps/v1
kind: Deployment
metadata:
  name: minio-operator
  namespace: minio-operator
  labels:
    app.kubernetes.io/instance: minio-operator
    app.kubernetes.io/name: operator
spec:
  replicas: 2
  selector:
    matchLabels:
      name: minio-operator
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        name: minio-operator
        app.kubernetes.io/instance: minio-operator
        app.kubernetes.io/name: operator
    spec:
      serviceAccountName: minio-operator
      containers:
        - name: minio-operator
          image: minio/operator:v7.0.1
          imagePullPolicy: IfNotPresent
          args:
            - controller
          resources:
            requests:
              cpu: 200m
              memory: 256Mi
              ephemeral-storage: 500Mi
          securityContext:
            runAsUser: 1000
            runAsGroup: 1000
            runAsNonRoot: true
            allowPrivilegeEscalation: false
            capabilities:
              drop:
                - ALL
            seccompProfile:
              type: RuntimeDefault
          env:
            - name: MINIO_CONSOLE_TLS_ENABLE
              value: "off"
            - name: OPERATOR_STS_ENABLED
              value: "on"
      affinity:
        podAntiAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            - labelSelector:
                matchExpressions:
                  - key: name
                    operator: In
                    values:
                      - minio-operator
              topologyKey: kubernetes.io/hostname
