# ---------------------------------------------------------------------------
# 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:
    capabilities: Basic Install
    categories: "Integration & Delivery"
    repository: https://github.com/apache/camel-k
    containerImage: docker.io/apache/camel-k:0.3.3
    support: Camel
    createdAt: 2019-05-06T16:45:00Z
    certified: "false"
    description: |-
      Apache Camel K (a.k.a. Kamel) is a lightweight integration framework built from Apache Camel that runs natively on Kubernetes and is specifically designed for serverless and microservice architectures.
    alm-examples: |-
      [{
        "apiVersion": "camel.apache.org/v1alpha1",
        "kind": "IntegrationPlatform",
        "metadata": {
          "name": "example"
        },
        "spec": {
          "build": {
            "buildStrategy": "pod"
          },
          "resources": {
            "kits": [
              "jvm"
            ]
          }
        }
      },
      {
        "apiVersion": "camel.apache.org/v1alpha1",
        "kind": "Integration",
        "metadata": {
          "name": "example"
        },
        "spec": {
          "source": {
            "content": "// Add example Java code to create Integration",
            "name": "Example.java"
          }
        }
      },
      {
        "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"
        }
      }]
  name: camel-k-operator.v0.3.3
  namespace: placeholder
spec:
  displayName: Camel K Operator
  version: 0.3.3
  description: |
    Apache Camel K
    ==============

    Camel K (a.k.a Kamel) is a lightweight integration framework built from Apache Camel that runs natively on Kubernetes and is specifically designed for serverless and microservice architectures.

    # 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
    ```
  keywords: ['apache', 'kamel', 'kubernetes', 'serverless', 'microservices']
  maintainers:
    - name: The Apache Software Foundation
      email: users@camel.apache.org
  provider:
    name: The Apache Software Foundation
  labels:
    name: camel-k-operator
  selector:
    matchLabels:
      name: camel-k-operator
  links:
    - name: Camel K source code repository
      url: https://github.com/apache/camel-k
  icon:
    - base64data: PHN2ZyB2aWV3Qm94PSIwIDAgMTMwLjIxIDEzMC4wMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9ImEiIHgxPSIzMzMuNDgiIHgyPSI0NzciIHkxPSI3MDIuNiIgeTI9IjU2My43MyIgZ3JhZGllbnRUcmFuc2Zvcm09InRyYW5zbGF0ZSg5NC4wMzggMjc2LjA2KSBzY2FsZSguOTkyMDYpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agc3RvcC1jb2xvcj0iI0Y2OTkyMyIgb2Zmc2V0PSIwIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0Y3OUEyMyIgb2Zmc2V0PSIuMTEiLz48c3RvcCBzdG9wLWNvbG9yPSIjRTk3ODI2IiBvZmZzZXQ9Ii45NDUiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iYiIgeDE9IjMzMy40OCIgeDI9IjQ3NyIgeTE9IjcwMi42IiB5Mj0iNTYzLjczIiBncmFkaWVudFRyYW5zZm9ybT0idHJhbnNsYXRlKDk0LjAzOCAyNzYuMDYpIHNjYWxlKC45OTIwNikiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBzdG9wLWNvbG9yPSIjRjY5OTIzIiBvZmZzZXQ9IjAiLz48c3RvcCBzdG9wLWNvbG9yPSIjRjc5QTIzIiBvZmZzZXQ9Ii4wOCIvPjxzdG9wIHN0b3AtY29sb3I9IiNFOTc4MjYiIG9mZnNldD0iLjQxOSIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJjIiB4MT0iNjMzLjU1IiB4Mj0iNTY2LjQ3IiB5MT0iODE0LjYiIHkyPSI5MDkuMTIiIGdyYWRpZW50VHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTg1LjQyMSA1Ni4yMzYpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agc3RvcC1jb2xvcj0iI2Y2ZTQyMyIgb2Zmc2V0PSIwIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0Y3OUEyMyIgb2Zmc2V0PSIuNDEyIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0U5NzgyNiIgb2Zmc2V0PSIuNzMzIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTQzNy44OSAtODM1LjI5KSI+PGNpcmNsZSBjeD0iNTAzLjEiIGN5PSI5MDAuMjkiIHI9IjYyLjUyIiBmaWxsPSJ1cmwoI2EpIiBzdHJva2U9InVybCgjYikiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iNC45NiIvPjxwYXRoIGQ9Ik00ODcuODkgODczLjY0YTg5LjUzIDg5LjUzIDAgMCAwLTIuNjg4LjAzMWMtMS4wNDMuMDMxLTIuNDQ1LjM2Mi00LjA2Mi45MDYgMjcuMzA5IDIwLjczNyAzNy4xMjcgNTguMTQ2IDIwLjI1IDkwLjY1Ni41NzMuMDE1IDEuMTQyLjA2MyAxLjcxOS4wNjMgMzAuODQ0IDAgNTYuNjItMjEuNDkzIDYzLjI4LTUwLjMxMi0xOS41NzItMjIuOTQzLTQ2LjExNy00MS4yOTQtNzguNS00MS4zNDR6IiBmaWxsPSJ1cmwoI2MpIiBvcGFjaXR5PSIuNzUiLz48cGF0aCBkPSJNNDgxLjE0IDg3NC41OGMtOS4wNjggMy4wNTItMjYuMzY4IDEzLjgwMi00MyAyOC4xNTYgMS4yNjMgMzQuMTk1IDI4Ljk2MSA2MS42MDcgNjMuMjUgNjIuNSAxNi44NzctMzIuNTEgNy4wNi02OS45MTktMjAuMjUtOTAuNjU2eiIgZmlsbD0iIzI4MTcwYiIgb3BhY2l0eT0iLjc1Ii8+PHBhdGggZD0iTTUwNC44ODkgODYyLjU0NmMtLjQ3Mi0uMDMyLS45MzIuMDI4LTEuMzc1LjI1LTUuNiAyLjgwMSAwIDE0IDAgMTQtMTYuODA3IDE0LjAwOS0xMy4yMzYgMzcuOTM4LTMyLjg0NCAzNy45MzgtMTAuNjg5IDAtMjEuMzIyLTEyLjI5My0zMi41MzEtMTkuODEyLS4xNDQgMS43NzMtLjI1IDMuNTY0LS4yNSA1LjM3NSAwIDI0LjUxNSAxMy41MSA0NS44NjMgMzMuNDY5IDU3LjA2MyA1LjU4My0uNzAzIDExLjE1OC0yLjExNCAxNS4zNDQtNC45MDYgMjEuOTkyLTE0LjY2MiAyNy40NTItNDIuNTU3IDM2LjQzOC01Ni4wMzEgNS41OTYtOC40MDcgMzEuODI0LTcuNjc3IDMzLjU5NC0xMS4yMiAyLjgwNC01LjYwMS01LjYwMi0xNC04LjQwNi0xNGgtMjIuNDA2Yy0xLjU2NiAwLTQuMDI1LTIuNzgtNS41OTQtMi43OGgtOC40MDZzLTMuNzI1LTUuNjUtNy4wMzEtNS44NzV6IiBmaWxsPSIjZmZmIi8+PC9nPjwvc3ZnPg==
      mediatype: image/svg+xml
  maturity: alpha
  minKubeVersion: 1.11.0
  customresourcedefinitions:
    owned:
      - kind: Build
        name: builds.camel.apache.org
        version: v1alpha1
        displayName: Build
        description: A Camel K build
      - kind: CamelCatalog
        name: camelcatalogs.camel.apache.org
        version: v1alpha1
        displayName: Camel Catalog
        description: A Camel catalog
      - kind: Integration
        name: integrations.camel.apache.org
        version: v1alpha1
        displayName: Integration
        description: A Camel K integration
      - kind: IntegrationKit
        name: integrationlkits.camel.apache.org
        displayName: Integration Kit
        description: A Camel K integration kit
        version: v1alpha1
      - kind: IntegrationPlatform
        name: integrationplatforms.camel.apache.org
        version: v1alpha1
        displayName: Integration Platform
        description: A Camel K integration platform
  install:
    spec:
      deployments:
        - name: camel-k-operator
          spec:
            replicas: 1
            selector:
              matchLabels:
                name: camel-k-operator
            strategy:
              type: Recreate
            template:
              metadata:
                labels:
                  camel.apache.org/component: operator
                  name: camel-k-operator
              spec:
                containers:
                  - command:
                      - camel-k
                    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
                    image: docker.io/apache/camel-k:0.3.3
                    imagePullPolicy: IfNotPresent
                    name: camel-k-operator
                serviceAccountName: camel-k-operator
      permissions:
        - rules:
            - apiGroups:
                - camel.apache.org
              resources:
                - '*'
              verbs:
                - '*'
            - apiGroups:
                - ""
              resources:
                - pods
                - services
                - endpoints
                - persistentvolumeclaims
                - configmaps
                - secrets
              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
          serviceAccountName: camel-k-operator
    strategy: deployment
  installModes:
    - supported: true
      type: OwnNamespace
    - supported: true
      type: SingleNamespace
    - supported: false
      type: MultiNamespace
    - supported: false
      type: AllNamespaces
