---
# Source: pg-operator/templates/role-binding.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: pg-operator
  namespace: default
---
# Source: pg-operator/templates/role.yaml
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: pg-operator
  namespace: default
  labels:
    helm.sh/chart: pg-operator-3.0.0
    app.kubernetes.io/name: pg-operator
    app.kubernetes.io/instance: pg-operator
    app.kubernetes.io/version: "3.0.0"
    app.kubernetes.io/managed-by: Helm
    meta.helm.sh/release-name: pg-operator
    meta.helm.sh/release-namespace: default
rules:
- apiGroups:
  - ""
  resources:
  - configmaps
  - pods
  - secrets
  - serviceaccounts
  - services
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - watch
- apiGroups:
  - ""
  resources:
  - endpoints
  verbs:
  - create
  - delete
  - deletecollection
  - get
  - list
  - patch
  - watch
- apiGroups:
  - ""
  resources:
  - endpoints/restricted
  - pods/exec
  - services
  verbs:
  - create
- apiGroups:
  - ""
  resources:
  - events
  verbs:
  - create
  - patch
- apiGroups:
  - ""
  resources:
  - persistentvolumeclaims
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - apps
  resources:
  - deployments
  - replicasets
  - statefulsets
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - watch
- apiGroups:
  - batch
  resources:
  - cronjobs
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - watch
- apiGroups:
  - batch
  resources:
  - jobs
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - cert-manager.io
  - certmanager.k8s.io
  resources:
  - certificaterequests
  - certificates
  - issuers
  verbs:
  - create
  - delete
  - deletecollection
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - coordination.k8s.io
  resources:
  - leases
  verbs:
  - create
  - delete
  - get
  - list
  - update
  - watch
- apiGroups:
  - pgv2.percona.com
  resources:
  - perconapgbackups
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - pgv2.percona.com
  resources:
  - perconapgbackups/finalizers
  - perconapgclusters/status
  - perconapgrestores/finalizers
  - perconapgrestores/status
  - perconapgupgrades/finalizers
  - perconapgupgrades/status
  verbs:
  - patch
  - update
- apiGroups:
  - pgv2.percona.com
  resources:
  - perconapgbackups/status
  verbs:
  - create
  - patch
  - update
- apiGroups:
  - pgv2.percona.com
  resources:
  - perconapgclusters
  - perconapgupgrades
  verbs:
  - create
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - pgv2.percona.com
  resources:
  - perconapgclusters/finalizers
  verbs:
  - update
- apiGroups:
  - pgv2.percona.com
  resources:
  - perconapgrestores
  verbs:
  - create
  - get
  - list
  - patch
  - watch
- apiGroups:
  - policy
  resources:
  - poddisruptionbudgets
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - watch
- apiGroups:
  - postgres-operator.crunchydata.com
  resources:
  - pgupgrades
  - postgresclusters
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - rbac.authorization.k8s.io
  resources:
  - rolebindings
  - roles
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - watch
- apiGroups:
  - snapshot.storage.k8s.io
  resources:
  - volumesnapshots
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - watch
- apiGroups:
  - upstream.pgv2.percona.com
  resources:
  - crunchybridgeclusters
  verbs:
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - upstream.pgv2.percona.com
  resources:
  - crunchybridgeclusters/finalizers
  - crunchybridgeclusters/status
  verbs:
  - patch
  - update
- apiGroups:
  - upstream.pgv2.percona.com
  resources:
  - pgadmins
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - upstream.pgv2.percona.com
  resources:
  - pgadmins/finalizers
  - pgupgrades/finalizers
  - postgresclusters/finalizers
  verbs:
  - update
- apiGroups:
  - upstream.pgv2.percona.com
  resources:
  - pgadmins/status
  - pgupgrades/status
  verbs:
  - patch
- apiGroups:
  - upstream.pgv2.percona.com
  resources:
  - pgupgrades
  - postgresclusters
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - upstream.pgv2.percona.com
  resources:
  - postgresclusters/status
  verbs:
  - create
  - patch
  - update
---
# Source: pg-operator/templates/role-binding.yaml
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: pg-operator
  namespace: default
  labels:
    helm.sh/chart: pg-operator-3.0.0
    app.kubernetes.io/name: pg-operator
    app.kubernetes.io/instance: pg-operator
    app.kubernetes.io/version: "3.0.0"
    app.kubernetes.io/managed-by: Helm
    meta.helm.sh/release-name: pg-operator
    meta.helm.sh/release-namespace: default
subjects:
- kind: ServiceAccount
  name: pg-operator
roleRef:
  kind: Role
  name: pg-operator
  apiGroup: rbac.authorization.k8s.io
---
# Source: pg-operator/templates/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: pg-operator
  namespace: default
  labels:
    helm.sh/chart: pg-operator-3.0.0
    app.kubernetes.io/name: pg-operator
    app.kubernetes.io/instance: pg-operator
    app.kubernetes.io/version: "3.0.0"
    app.kubernetes.io/managed-by: Helm
    meta.helm.sh/release-name: pg-operator
    meta.helm.sh/release-namespace: default
    pgv2.percona.com/control-plane: postgres-operator
spec:
  replicas: 1
  selector:
    matchLabels:
      pgv2.percona.com/control-plane: postgres-operator
      app.kubernetes.io/component: operator
      app.kubernetes.io/name: pg-operator
      app.kubernetes.io/instance: pg-operator
      app.kubernetes.io/part-of: pg-operator
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app.kubernetes.io/component: operator
        app.kubernetes.io/name: pg-operator
        app.kubernetes.io/instance: pg-operator
        app.kubernetes.io/part-of: pg-operator
        pgv2.percona.com/control-plane: postgres-operator
    spec:
      serviceAccountName: pg-operator
      terminationGracePeriodSeconds: 600
      containers:
        - name: operator
          image: docker.io/percona/percona-postgresql-operator:3.0.0
          imagePullPolicy: Always
          ports:
          - containerPort: 8080
            name: metrics
            protocol: TCP
          env:
            - name: PGO_NAMESPACE
              valueFrom:
                fieldRef:
                  fieldPath: metadata.namespace
            - name: WATCH_NAMESPACE
              valueFrom:
                fieldRef:
                  fieldPath: metadata.namespace
            - name: LOG_STRUCTURED
              value: "false"
            - name: LOG_LEVEL
              value: "INFO"
            - name: DISABLE_TELEMETRY
              value: "false"
            - name: PPROF_BIND_ADDRESS
              value: "0"
            - name: PGO_CONTROLLER_LEADER_ELECTION_ENABLED
              value: "true"
            - name: PGO_CONTROLLER_LEASE_NAME
              value: ""
            - name: PGO_CONTROLLER_LEASE_DURATION
              value: "60s"
            - name: PGO_CONTROLLER_RENEW_DEADLINE
              value: "40s"
            - name: PGO_CONTROLLER_RETRY_PERIOD
              value: "10s"
            - name: PGO_FEATURE_GATES
              value: "BackupSnapshots=false"
          livenessProbe:
            failureThreshold: 3
            httpGet:
              path: /metrics
              port: metrics
              scheme: HTTP
          securityContext:
            allowPrivilegeEscalation: false
            capabilities:
              drop:
              - ALL
            readOnlyRootFilesystem: true
            runAsNonRoot: true
          resources:
            limits:
              cpu: 200m
              memory: 500Mi
            requests:
              cpu: 100m
              memory: 20Mi
