apiVersion: operators.coreos.com/v1alpha1
kind: ClusterServiceVersion
metadata:
  # The version value is substituted by the ART pipeline
  name: clusterkubedescheduleroperator.4.7.0-202110121415
  namespace: openshift-kube-descheduler-operator
  annotations:
    alm-examples: |
      [
        {
          "apiVersion": "operator.openshift.io/v1beta1",
          "kind": "KubeDescheduler",
          "metadata": {
            "name": "cluster",
            "namespace": "openshift-kube-descheduler-operator"
          },
          "spec": {
            "deschedulingIntervalSeconds": 3600,
            "managementState": "Managed",
            "profiles": ["AffinityAndTaints"]
          }
        }
      ]
    certified: "false"
    containerImage: image-registry.openshift-image-registry.svc:5000/openshift/ose-cluster-kube-descheduler-operator:v4.7.0.20211012.144523
    createdAt: 2020/04/18
    olm.skipRange: ">=4.5.0 <4.7.0-202110121415"
    description: An operator to run descheduler in Openshift cluster.
    repository: https://github.com/openshift/cluster-kube-descheduler-operator
    support: Red Hat, Inc.
    capabilities: Basic Install
    categories: OpenShift Optional
spec:
  customresourcedefinitions:
    owned:
    - displayName: Kube Descheduler
      description: KubeDescheduler is the Schema for the deschedulers API
      group: operator.openshift.io
      kind: KubeDescheduler
      name: kubedeschedulers.operator.openshift.io
      version: v1beta1
  description: |
      The Kube Descheduler Operator provides the ability to evict a running pod so that the pod can be rescheduled onto a more suitable node.

      There are several situations where descheduling can benefit your cluster:

      * Nodes are underutilized or overutilized.
      * Pod and node affinity requirements, such as taints or labels, have changed and the original scheduling decisions are no longer appropriate for certain nodes.
      * Node failure requires pods to be moved.
      * New nodes are added to clusters.

      ## Descheduler Profiles

      Once the operator is installed, you can configure one or more profiles to identify pods to evict. The scheduler will schedule the replacement of the evicted pods.

      The following profiles are available:

      * AffinityAndTaints
      * TopologyAndDuplicates
      * LifecycleAndUtilization

      These profiles are documented in detail in the [descheduler operator README](https://github.com/openshift/cluster-kube-descheduler-operator#profiles).

      ## Additional Parameters

      In addition to the profiles, the following parameters can be configured:

      * `deschedulingIntervalSeconds` - Set the number of seconds between descheduler runs. A value of `0` in this field runs the descheduler once and exits.
  displayName: Kube Descheduler Operator
  keywords: ["scheduling", "descheduler", "workload"]
  provider:
    name: Red Hat, Inc.
  maturity: beta
  version: 4.7.0-202110121415
  icon:
  - base64data: [encoded data, 5096 characters]
    mediatype: image/png
  links:
  - name: Source Code
    url: https://github.com/openshift/cluster-kube-descheduler-operator
  maintainers:
  - email: support@redhat.com
    name: Red Hat
  minKubeVersion: 1.20.0
  labels:
    olm-owner-enterprise-app: cluster-kube-descheduler-operator
    olm-status-descriptors: cluster-kube-descheduler-operator.v4.7.0
  installModes:
  - supported: true
    type: OwnNamespace
  - supported: true
    type: SingleNamespace
  - supported: false
    type: MultiNamespace
  - supported: false
    type: AllNamespaces
  install:
    spec:
      clusterPermissions:
      - serviceAccountName: openshift-descheduler
        rules:
        - apiGroups:
          - operator.openshift.io
          resources:
          - "*"
          verbs:
          - "*"
        - apiGroups:
          - kubedeschedulers.operator.openshift.io
          resources:
          - "*"
          verbs:
          - "*"
        - apiGroups:
          - ""
          resources:
          - services
          - pods
          - configmaps
          - secrets
          - namespaces
          - nodes
          - pods/eviction
          - events
          verbs:
          - "*"
        - apiGroups:
          - scheduling.k8s.io
          resources:
          - priorityclasses
          verbs:
          - get
          - watch
          - list
        - apiGroups:
          - apps
          resources:
          - deployments
          - replicasets
          verbs:
          - "*"
      deployments:
      - name: descheduler-operator
        spec:
          replicas: 1
          selector:
            matchLabels:
              name: descheduler-operator
          template:
            metadata:
              labels:
                name: descheduler-operator
            spec:
              containers:
                - name: descheduler-operator
                  image: image-registry.openshift-image-registry.svc:5000/openshift/ose-cluster-kube-descheduler-operator:v4.7.0.20211012.144523
                  resources:
                    requests:
                      memory: 50Mi
                      cpu: 10m
                  ports:
                  - containerPort: 60000
                    name: metrics
                  command:
                  - cluster-kube-descheduler-operator
                  args:
                  - "operator"
                  imagePullPolicy: Always
                  env:
                    - name: WATCH_NAMESPACE
                      valueFrom:
                        fieldRef:
                          fieldPath: metadata.namespace
                    - name: OPERATOR_NAME
                      value: "descheduler-operator"
                    - name: IMAGE
                      value: image-registry.openshift-image-registry.svc:5000/openshift/ose-descheduler:v4.7.0.20211012.144523
              serviceAccountName: openshift-descheduler
              serviceAccount: openshift-descheduler
    strategy: deployment
