# ---------------------------------------------------------------------------
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ---------------------------------------------------------------------------

apiVersion: operators.coreos.com/v1alpha1
kind: ClusterServiceVersion
metadata:
  annotations:
    alm-examples: |-
      [{
        "apiVersion": "camel.apache.org/v1alpha1",
        "kind": "IntegrationPlatform",
        "metadata": {
          "name": "example"
        }
      },
      {
        "apiVersion": "camel.apache.org/v1alpha1",
        "kind": "Integration",
        "metadata": {
          "name": "example"
        },
        "spec": {
          "sources": [
            {
              "content": "from('timer:groovy?period=1s')\n  .setBody().simple('Hello world from Camel K!')\n  .to('log:info?showAll=false')",
              "name": "example.groovy"
            }
          ]
        }
      },
      {
        "apiVersion": "camel.apache.org/v1alpha1",
        "kind": "IntegrationKit",
        "metadata": {
          "name": "example"
        }
      },
      {
        "apiVersion": "camel.apache.org/v1alpha1",
        "kind": "CamelCatalog",
        "metadata": {
          "name": "example"
        }
      },
      {
        "apiVersion": "camel.apache.org/v1alpha1",
        "kind": "Build",
        "metadata": {
          "name": "example"
        }
      }]
    capabilities: Basic Install
    categories: Integration & Delivery
    certified: "false"
    containerImage: docker.io/apache/camel-k:1.0.0-M2
    createdAt: "2019-07-26T02:45:00Z"
    description: Apache Camel K is a lightweight integration platform, born on Kubernetes,
      with serverless superpowers.
    repository: https://github.com/apache/camel-k
    support: Camel
  name: camel-k-operator.v1.0.0-m2
  namespace: placeholder
spec:
  apiservicedefinitions: {}
  customresourcedefinitions:
    owned:
    - description: A Camel K build
      displayName: Build
      kind: Build
      name: builds.camel.apache.org
      version: v1alpha1
    - description: A Camel catalog
      displayName: Camel Catalog
      kind: CamelCatalog
      name: camelcatalogs.camel.apache.org
      version: v1alpha1
    - description: A Camel K integration
      displayName: Integration
      kind: Integration
      name: integrations.camel.apache.org
      version: v1alpha1
    - description: A Camel K integration kit
      displayName: Integration Kit
      kind: IntegrationKit
      name: integrationkits.camel.apache.org
      version: v1alpha1
    - description: A Camel K integration platform
      displayName: Integration Platform
      kind: IntegrationPlatform
      name: integrationplatforms.camel.apache.org
      version: v1alpha1
  description: |
    Apache Camel K
    ==============

    Apache Camel K is a lightweight integration platform, born on Kubernetes, with serverless superpowers.

    ## Installation

    To start using Camel K, install the operator and then create the following `IntegrationPlatform`:
    ```
    apiVersion: camel.apache.org/v1alpha1
    kind: IntegrationPlatform
    metadata:
      name: camel-k
      labels:
        app: "camel-k"
    ```

    ## Running an Integration

    After the initial setup, you can run a Camel integration on the cluster by creating an example `Integration`:
    ```
    apiVersion: camel.apache.org/v1alpha1
    kind: Integration
    metadata:
      name: example
    spec:
      sources:
      - content: |
          import org.apache.camel.builder.RouteBuilder;

          public class Example extends RouteBuilder {
              @Override
              public void configure() throws Exception {
                  from("timer:tick")
                      .setBody(constant("Hello World!"))
                  .to("log:info?skipBodyLineSeparator=false");
              }
          }
      name: Example.java
    ```
  displayName: Camel K Operator
  icon:
  - base64data: PHN2ZyB2aWV3Qm94PSIwIDAgMTMwLjIxIDEzMC4wMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9ImEiIHgxPSIzMzMuNDgiIHgyPSI0NzciIHkxPSI3MDIuNiIgeTI9IjU2My43MyIgZ3JhZGllbnRUcmFuc2Zvcm09InRyYW5zbGF0ZSg5NC4wMzggMjc2LjA2KSBzY2FsZSguOTkyMDYpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agc3RvcC1jb2xvcj0iI0Y2OTkyMyIgb2Zmc2V0PSIwIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0Y3OUEyMyIgb2Zmc2V0PSIuMTEiLz48c3RvcCBzdG9wLWNvbG9yPSIjRTk3ODI2IiBvZmZzZXQ9Ii45NDUiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iYiIgeDE9IjMzMy40OCIgeDI9IjQ3NyIgeTE9IjcwMi42IiB5Mj0iNTYzLjczIiBncmFkaWVudFRyYW5zZm9ybT0idHJhbnNsYXRlKDk0LjAzOCAyNzYuMDYpIHNjYWxlKC45OTIwNikiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBzdG9wLWNvbG9yPSIjRjY5OTIzIiBvZmZzZXQ9IjAiLz48c3RvcCBzdG9wLWNvbG9yPSIjRjc5QTIzIiBvZmZzZXQ9Ii4wOCIvPjxzdG9wIHN0b3AtY29sb3I9IiNFOTc4MjYiIG9mZnNldD0iLjQxOSIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJjIiB4MT0iNjMzLjU1IiB4Mj0iNTY2LjQ3IiB5MT0iODE0LjYiIHkyPSI5MDkuMTIiIGdyYWRpZW50VHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTg1LjQyMSA1Ni4yMzYpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agc3RvcC1jb2xvcj0iI2Y2ZTQyMyIgb2Zmc2V0PSIwIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0Y3OUEyMyIgb2Zmc2V0PSIuNDEyIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0U5NzgyNiIgb2Zmc2V0PSIuNzMzIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTQzNy44OSAtODM1LjI5KSI+PGNpcmNsZSBjeD0iNTAzLjEiIGN5PSI5MDAuMjkiIHI9IjYyLjUyIiBmaWxsPSJ1cmwoI2EpIiBzdHJva2U9InVybCgjYikiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iNC45NiIvPjxwYXRoIGQ9Ik00ODcuODkgODczLjY0YTg5LjUzIDg5LjUzIDAgMCAwLTIuNjg4LjAzMWMtMS4wNDMuMDMxLTIuNDQ1LjM2Mi00LjA2Mi45MDYgMjcuMzA5IDIwLjczNyAzNy4xMjcgNTguMTQ2IDIwLjI1IDkwLjY1Ni41NzMuMDE1IDEuMTQyLjA2MyAxLjcxOS4wNjMgMzAuODQ0IDAgNTYuNjItMjEuNDkzIDYzLjI4LTUwLjMxMi0xOS41NzItMjIuOTQzLTQ2LjExNy00MS4yOTQtNzguNS00MS4zNDR6IiBmaWxsPSJ1cmwoI2MpIiBvcGFjaXR5PSIuNzUiLz48cGF0aCBkPSJNNDgxLjE0IDg3NC41OGMtOS4wNjggMy4wNTItMjYuMzY4IDEzLjgwMi00MyAyOC4xNTYgMS4yNjMgMzQuMTk1IDI4Ljk2MSA2MS42MDcgNjMuMjUgNjIuNSAxNi44NzctMzIuNTEgNy4wNi02OS45MTktMjAuMjUtOTAuNjU2eiIgZmlsbD0iIzI4MTcwYiIgb3BhY2l0eT0iLjc1Ii8+PHBhdGggZD0iTTUwNC44ODkgODYyLjU0NmMtLjQ3Mi0uMDMyLS45MzIuMDI4LTEuMzc1LjI1LTUuNiAyLjgwMSAwIDE0IDAgMTQtMTYuODA3IDE0LjAwOS0xMy4yMzYgMzcuOTM4LTMyLjg0NCAzNy45MzgtMTAuNjg5IDAtMjEuMzIyLTEyLjI5My0zMi41MzEtMTkuODEyLS4xNDQgMS43NzMtLjI1IDMuNTY0LS4yNSA1LjM3NSAwIDI0LjUxNSAxMy41MSA0NS44NjMgMzMuNDY5IDU3LjA2MyA1LjU4My0uNzAzIDExLjE1OC0yLjExNCAxNS4zNDQtNC45MDYgMjEuOTkyLTE0LjY2MiAyNy40NTItNDIuNTU3IDM2LjQzOC01Ni4wMzEgNS41OTYtOC40MDcgMzEuODI0LTcuNjc3IDMzLjU5NC0xMS4yMiAyLjgwNC01LjYwMS01LjYwMi0xNC04LjQwNi0xNGgtMjIuNDA2Yy0xLjU2NiAwLTQuMDI1LTIuNzgtNS41OTQtMi43OGgtOC40MDZzLTMuNzI1LTUuNjUtNy4wMzEtNS44NzV6IiBmaWxsPSIjZmZmIi8+PC9nPjwvc3ZnPg==
    mediatype: image/svg+xml
  install:
    spec:
      deployments:
      - name: camel-k-operator
        spec:
          replicas: 1
          selector:
            matchLabels:
              name: camel-k-operator
          strategy:
            type: Recreate
          template:
            metadata:
              labels:
                app: camel-k
                camel.apache.org/component: operator
                name: camel-k-operator
            spec:
              containers:
              - command:
                - kamel
                - operator
                env:
                - name: WATCH_NAMESPACE
                  valueFrom:
                    fieldRef:
                      fieldPath: metadata.annotations['olm.targetNamespaces']
                - name: OPERATOR_NAME
                  value: camel-k
                - name: POD_NAME
                  valueFrom:
                    fieldRef:
                      fieldPath: metadata.name
                - name: NAMESPACE
                  valueFrom:
                    fieldRef:
                      fieldPath: metadata.namespace
                image: docker.io/apache/camel-k:1.0.0-M2
                imagePullPolicy: IfNotPresent
                name: camel-k-operator
                resources: {}
              serviceAccountName: camel-k-operator
      permissions:
      - rules:
        - apiGroups:
          - camel.apache.org
          resources:
          - '*'
          verbs:
          - '*'
        - apiGroups:
          - ""
          resources:
          - pods
          - services
          - endpoints
          - persistentvolumeclaims
          - configmaps
          - secrets
          - serviceaccounts
          verbs:
          - create
          - delete
          - deletecollection
          - get
          - list
          - patch
          - update
          - watch
        - apiGroups:
          - rbac.authorization.k8s.io
          resources:
          - roles
          - rolebindings
          verbs:
          - create
          - delete
          - deletecollection
          - get
          - list
          - patch
          - update
          - watch
        - apiGroups:
          - ""
          resources:
          - events
          verbs:
          - get
          - list
          - watch
        - apiGroups:
          - apps
          resources:
          - deployments
          - replicasets
          - statefulsets
          verbs:
          - create
          - delete
          - deletecollection
          - get
          - list
          - patch
          - update
          - watch
        - apiGroups:
          - apps
          resources:
          - daemonsets
          verbs:
          - get
          - list
          - watch
        - apiGroups:
          - extensions
          resources:
          - ingresses
          verbs:
          - create
          - delete
          - deletecollection
          - get
          - list
          - patch
          - update
          - watch
        - apiGroups:
          - ""
          - build.openshift.io
          resources:
          - buildconfigs
          - buildconfigs/webhooks
          - builds
          verbs:
          - create
          - delete
          - deletecollection
          - get
          - list
          - patch
          - update
          - watch
        - apiGroups:
          - ""
          - image.openshift.io
          resources:
          - imagestreamimages
          - imagestreammappings
          - imagestreams
          - imagestreams/secrets
          - imagestreamtags
          verbs:
          - create
          - delete
          - deletecollection
          - get
          - list
          - patch
          - update
          - watch
        - apiGroups:
          - ""
          - build.openshift.io
          resources:
          - buildconfigs/instantiate
          - buildconfigs/instantiatebinary
          - builds/clone
          verbs:
          - create
        - apiGroups:
          - ""
          - route.openshift.io
          resources:
          - routes
          verbs:
          - create
          - delete
          - deletecollection
          - get
          - list
          - patch
          - update
          - watch
        - apiGroups:
          - ""
          - route.openshift.io
          resources:
          - routes/custom-host
          verbs:
          - create
        - apiGroups:
          - serving.knative.dev
          resources:
          - '*'
          verbs:
          - create
          - delete
          - deletecollection
          - get
          - list
          - patch
          - update
          - watch
        - apiGroups:
          - eventing.knative.dev
          - messaging.knative.dev
          resources:
          - '*'
          verbs:
          - create
          - delete
          - deletecollection
          - get
          - list
          - patch
          - update
          - watch
        serviceAccountName: camel-k-operator
    strategy: deployment
  installModes:
  - supported: true
    type: OwnNamespace
  - supported: true
    type: SingleNamespace
  - supported: false
    type: MultiNamespace
  - supported: true
    type: AllNamespaces
  keywords:
  - apache
  - kamel
  - kubernetes
  - serverless
  - microservices
  labels:
    name: camel-k-operator
  links:
  - name: Camel K source code repository
    url: https://github.com/apache/camel-k
  maintainers:
  - email: users@camel.apache.org
    name: The Apache Software Foundation
  maturity: alpha
  minKubeVersion: 1.11.0
  provider:
    name: The Apache Software Foundation
  replaces: camel-k-operator.v1.0.0-m1
  selector:
    matchLabels:
      name: camel-k-operator
  version: 1.0.0-m2
