apiVersion: operators.coreos.com/v1alpha1
kind: ClusterServiceVersion
metadata:
  name: 3scale-community-operator.v0.4.0
  namespace: placeholder
  annotations:
    repository: https://github.com/3scale/3scale-operator
    capabilities: Full Lifecycle
    categories: "Integration & Delivery"
    certified: "false"
    description: 3scale Operator to provision 3scale and publish/manage API
    containerImage: quay.io/3scale/3scale-operator:v0.4.0
    createdAt: 2019-05-30T22:40:00Z
    support: Red Hat, Inc.
    tectonic-visibility: ocs
    alm-examples: >-
       [{"apiVersion":"apps.3scale.net/v1alpha1","kind":"APIManager","metadata":{"name":"example-apimanager"},"spec":{"wildcardDomain":"example.com"}},
       {"apiVersion":"apps.3scale.net/v1alpha1","kind":"APIManager","metadata":{"name":"example-apimanager-ha"},"spec":{"highAvailability":{"enabled":true},"wildcardDomain":"example.com"}},
       {"apiVersion":"apps.3scale.net/v1alpha1","kind":"APIManager","metadata":{"name":"example-apimanager-s3"},"spec":{"system":{"fileStorage":{"amazonSimpleStorageService":{"awsBucket":"\u003cbucket-name\u003e","awsCredentialsSecret":{"name":"\u003ccredentials-secret-name\u003e"},"awsRegion":"\u003cregion\u003e"}}},"wildcardDomain":"\u003cdesired-domain\u003e"}},
       {"apiVersion":"capabilities.3scale.net/v1alpha1","kind":"API","metadata":{"labels":{"environment":"testing"},"name":"example-api"},"spec":{"description":"api01","integrationMethod":{"apicastHosted":{"apiTestGetRequest":"/","authenticationSettings":{"credentials":{"apiKey":{"authParameterName":"user-key","credentialsLocation":"headers"}},"errors":{"authenticationFailed":{"contentType":"text/plain; charset=us-ascii","responseBody":"Authentication failed","responseCode":403},"authenticationMissing":{"contentType":"text/plain; charset=us-ascii","responseBody":"Authentication Missing","responseCode":403}},"hostHeader":"","secretToken":"MySecretTokenBetweenApicastAndMyBackend_1237120312"},"mappingRulesSelector":{"matchLabels":{"api":"api01"}},"privateBaseURL":"https://echo-api.3scale.net:443"}}}},
       {"apiVersion":"capabilities.3scale.net/v1alpha1","kind":"Binding","metadata":{"name":"example-binding"},"spec":{"APISelector":{"matchLabels":{"environment":"testing"}},"credentialsRef":{"name":"ecorp-tenant-secret"}}},
       {"apiVersion":"capabilities.3scale.net/v1alpha1","kind":"Limit","metadata":{"labels":{"api":"api01"},"name":"plan01-metric01-day-10"},"spec":{"description":"Limit for metric01 in plan01","maxValue":10,"metricRef":{"name":"metric01"},"period":"day"}},
       {"apiVersion":"capabilities.3scale.net/v1alpha1","kind":"MappingRule","metadata":{"labels":{"api":"api01"},"name":"metric01-get-path01"},"spec":{"increment":1,"method":"GET","metricRef":{"name":"metric01"},"path":"/path01"}},
       {"apiVersion":"capabilities.3scale.net/v1alpha1","kind":"Metric","metadata":{"labels":{"api":"api01"},"name":"metric01"},"spec":{"description":"metric01","incrementHits":false,"unit":"hit"}},
       {"apiVersion":"capabilities.3scale.net/v1alpha1","kind":"Plan","metadata":{"labels":{"api":"api01"},"name":"example-plan"},"spec":{"approvalRequired":false,"costs":{"costMonth":0,"setupFee":0},"default":true,"limitSelector":{"matchLabels":{"plan":"plan01"}},"trialPeriod":0}},
       {"apiVersion":"capabilities.3scale.net/v1alpha1","kind":"Tenant","metadata":{"name":"example-tenant"},"spec":{"email":"admin@example.com","masterCredentialsRef":{"name":"system-seed"},"organizationName":"Example.com","passwordCredentialsRef":{"name":"ecorp-admin-secret"},"systemMasterUrl":"https://master.example.com","tenantSecretRef":{"name":"ecorp-tenant-secret","namespace":"operator-test"},"username":"admin"}}]
spec:
  customresourcedefinitions:
    owned:
    - kind: APIManager
      name: apimanagers.apps.3scale.net
      version: v1alpha1
      description: API Manager
      displayName: API Manager
      resources:
        - kind: DeploymentConfig
          version: apps.openshift.io/v1
        - kind: PersistentVolumeClaim
          version: v1
        - kind: Service
          version: v1
        - kind: Route
          version: route.openshift.io/v1
        - kind: ImageStream
          version: image.openshift.io/v1
      specDescriptors:
        - displayName: Wildcard Domain
          description: Wildcard domain as configured in the API Manager object
          path: wildcardDomain
          x-descriptors:
            - "urn:alm:descriptor:com.tectonic.ui:label"
      statusDescriptors:
        - displayName: Deployments
          description: API Manager Deployment Configs
          path: deployments
          x-descriptors:
            - "urn:alm:descriptor:com.tectonic.ui:podStatuses"
    - kind: API
      name: apis.capabilities.3scale.net
      version: v1alpha1
      description: API
      displayName: API
    - kind: Binding
      name: bindings.capabilities.3scale.net
      version: v1alpha1
      description: Binding
      displayName: Binding
    - kind: Limit
      name: limits.capabilities.3scale.net
      version: v1alpha1
      description: Limit
      displayName: Limit
    - kind: MappingRule
      name: mappingrules.capabilities.3scale.net
      version: v1alpha1
      description: MappingRule
      displayName: MappingRule
    - kind: Metric
      name: metrics.capabilities.3scale.net
      version: v1alpha1
      description: Metric
      displayName: Metric
    - kind: Plan
      name: plans.capabilities.3scale.net
      version: v1alpha1
      description: Plan
      displayName: Plan
    - kind: Tenant
      name: tenants.capabilities.3scale.net
      version: v1alpha1
      description: Tenant
      displayName: Tenant
  description: |
    The 3scale community Operator creates and maintains the Red Hat 3scale API Management - Community version on [OpenShift](https://www.openshift.com/) in various deployment configurations.

    [3scale API Management](https://www.redhat.com/en/technologies/jboss-middleware/3scale) makes it easy to manage your APIs.
    Share, secure, distribute, control, and monetize your APIs on an infrastructure platform built for performance, customer control, and future growth.

    ### Supported Features
    * **Installer** A way to install a 3scale API Management solution, providing configurability options at the time of installation
    * **Upgrade** Upgrade from previously installed 3scale API Management solution
    * **Reconcilliation** Tunable CRD parameters after 3scale API Management solution is installed
    * **Capabilities** Ability to define 3scale API definitions and set them into a 3scale API Management solution

    ### Documentation
    Documentation can be found on our [website](https://github.com/3scale/3scale-operator/blob/v0.4.0/doc/user-guide.md).

    ### Getting help
    If you encounter any issues while using 3scale operator, you can create an issue on our [Github repo](https://github.com/3scale/3scale-operator) for bugs, enhancements, or other requests.

    ### Contributing
    You can contribute by:

    * Raising any issues you find using 3scale Operator
    * Fixing issues by opening [Pull Requests](https://github.com/3scale/3scale-operator/pulls)
    * Improving [documentation](https://github.com/3scale/3scale-operator/blob/v0.4.0/doc/user-guide.md)
    * Talking about 3scale Operator

    All bugs, tasks or enhancements are tracked as [GitHub issues](https://github.com/3scale/3scale-operator/issues).

    ### License
    3scale Operator is licensed under the [Apache 2.0 license](https://github.com/3scale/3scale-operator/blob/master/LICENSE)

  keywords:
    - 3scale
    - API
  displayName: 3scale
  install:
    spec:
      deployments:
      - name: 3scale-operator
        spec:
          replicas: 1
          selector:
            matchLabels:
              name: threescale-operator
          strategy: {}
          template:
            metadata:
              labels:
                name: threescale-operator
            spec:
              containers:
              - command:
                - 3scale-operator
                env:
                - name: WATCH_NAMESPACE
                  valueFrom:
                    fieldRef:
                      fieldPath: metadata.namespace
                - name: POD_NAME
                  valueFrom:
                    fieldRef:
                      fieldPath: metadata.name
                - name: OPERATOR_NAME
                  value: threescale-operator
                - name: BACKEND_IMAGE
                  value: "quay.io/3scale/3scale27:apisonator-3scale-2.7.0-GA"
                - name: APICAST_IMAGE
                  value: "quay.io/3scale/3scale27:apicast-3scale-2.7.0-GA"
                - name: SYSTEM_IMAGE
                  value: "quay.io/3scale/3scale27:porta-3scale-2.7.0-GA"
                - name: ZYNC_IMAGE
                  value: "quay.io/3scale/3scale27:zync-3scale-2.7.0-GA"
                image: quay.io/3scale/3scale-operator:v0.4.0
                name: 3scale-operator
                resources: {}
              serviceAccountName: 3scale-operator
      permissions:
      - rules:
        - apiGroups:
          - ""
          resources:
          - pods
          - replicationcontrollers
          - services
          - endpoints
          - persistentvolumeclaims
          - events
          - configmaps
          - secrets
          - serviceaccounts
          - bindings/finalizers
          verbs:
          - '*'
        - apiGroups:
          - apps
          resources:
          - deployments
          - daemonsets
          - replicasets
          - statefulsets
          verbs:
          - '*'
        - apiGroups:
          - apps
          resourceNames:
          - 3scale-operator
          resources:
          - deployments/finalizers
          verbs:
          - update
        - apiGroups:
          - rbac.authorization.k8s.io
          resources:
          - roles
          - rolebindings
          verbs:
          - '*'
        - apiGroups:
          - image.openshift.io
          resources:
          - imagestreams
          - imagestreams/layers
          verbs:
          - '*'
        - apiGroups:
          - route.openshift.io
          resources:
          - routes
          verbs:
          - '*'
        - apiGroups:
          - route.openshift.io
          resources:
          - routes/custom-host
          verbs:
          - create
        - apiGroups:
          - route.openshift.io
          resources:
          - routes/status
          verbs:
          - get
        - apiGroups:
          - apps.openshift.io
          resources:
          - deploymentconfigs
          verbs:
          - '*'
        - apiGroups:
          - monitoring.coreos.com
          resources:
          - servicemonitors
          verbs:
          - get
          - create
        - apiGroups:
          - apps.3scale.net
          resources:
          - '*'
          verbs:
          - '*'
        - apiGroups:
          - capabilities.3scale.net
          resources:
          - '*'
          - bindings
          - metrics
          - plans
          - limits
          - mappingrules
          - tenants
          verbs:
          - '*'
        serviceAccountName: 3scale-operator
    strategy: deployment
  installModes:
  - supported: true
    type: OwnNamespace
  - supported: true
    type: SingleNamespace
  - supported: false
    type: MultiNamespace
  - supported: false
    type: AllNamespaces
  maturity: stable
  provider:
    name: Red Hat
  links:
    - name: GitHub
      url: https://github.com/3scale/3scale-operator
    - name: Documentation
      url: https://github.com/3scale/3scale-operator/blob/v0.4.0/doc/user-guide.md
  maintainers:
    - email: openshift-operators@redhat.com
      name: Red Hat
  version: 0.4.0
  replaces: 3scale-community-operator.v0.3.0
  icon:
    - base64data: [encoded data, 21404 characters]
      mediatype: image/png
