astefanutti commented on issue #2164: URL: https://github.com/apache/camel-k/issues/2164#issuecomment-805030728
Here is the CSV I produce locally with `make bundle`: ```yaml # --------------------------------------------------------------------------- # 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/v1", "kind": "Build", "metadata": { "name": "example" }, "spec": {} }, { "apiVersion": "camel.apache.org/v1", "kind": "CamelCatalog", "metadata": { "name": "example" }, "spec": {} }, { "apiVersion": "camel.apache.org/v1", "kind": "Integration", "metadata": { "name": "example" }, "spec": { "flows": [ { "from": { "parameters": { "period": "1000" }, "steps": [ { "set-body": { "constant": "Hello from Camel K" } }, { "to": "log:info" } ], "uri": "timer:yaml" } } ] } }, { "apiVersion": "camel.apache.org/v1", "kind": "IntegrationKit", "metadata": { "name": "example" }, "spec": {} }, { "apiVersion": "camel.apache.org/v1", "kind": "IntegrationPlatform", "metadata": { "labels": { "app": "camel-k" }, "name": "camel-k" }, "spec": null }, { "apiVersion": "camel.apache.org/v1alpha1", "kind": "Kamelet", "metadata": { "name": "example" }, "spec": { "definition": { "description": "Produces periodic events with a custom payload", "properties": { "message": { "description": "The message to generate", "title": "Message", "type": "string" }, "period": { "default": 1000, "description": "The time interval between two events", "title": "Period", "type": "integer" } }, "required": [ "message" ], "title": "Example Timer" }, "flow": { "from": { "parameters": { "period": "#property:period" }, "steps": [ { "set-body": { "constant": "#property:message" } }, { "to": "kamelet:sink" } ], "uri": "timer:tick" } } } }, { "apiVersion": "camel.apache.org/v1alpha1", "kind": "KameletBinding", "metadata": { "name": "example" }, "spec": { "sink": { "ref": { "apiVersion": "messaging.knative.dev/v1beta1", "kind": "InMemoryChannel", "name": "example" } }, "source": { "properties": { "message": "Hello world" }, "ref": { "apiVersion": "camel.apache.org/v1alpha1", "kind": "Kamelet", "name": "example" } } } } ] capabilities: Full Lifecycle categories: Integration & Delivery certified: "false" containerImage: docker.io/apache/camel-k:1.3.0-SNAPSHOT createdAt: "2021-03-23T16:05:35Z" description: Apache Camel K is a lightweight integration platform, born on Kubernetes, with serverless superpowers. operators.operatorframework.io/builder: operator-sdk-v1.3.0 operators.operatorframework.io/internal-objects: '["builds.camel.apache.org","integrationkits.camel.apache.org","camelcatalogs.camel.apache.org"]' operators.operatorframework.io/project_layout: go.kubebuilder.io/v2 repository: https://github.com/apache/camel-k support: Camel name: camel-k.v1.4.0 namespace: placeholder spec: apiservicedefinitions: {} customresourcedefinitions: owned: - description: Build is the Schema for the builds API displayName: Build kind: Build name: builds.camel.apache.org version: v1 - description: CamelCatalog is the Schema for the camelcatalogs API displayName: Camel Catalog kind: CamelCatalog name: camelcatalogs.camel.apache.org version: v1 - description: IntegrationKit is the Schema for the integrationkits API displayName: Integration Kit kind: IntegrationKit name: integrationkits.camel.apache.org version: v1 - description: IntegrationPlatform is the Schema for the integrationplatforms API displayName: Integration Platform kind: IntegrationPlatform name: integrationplatforms.camel.apache.org version: v1 - description: Integration is the Schema for the integrations API displayName: Integration kind: Integration name: integrations.camel.apache.org version: v1 - description: KameletBinding is the Schema for the kamelets binding API displayName: Kamelet Binding kind: KameletBinding name: kameletbindings.camel.apache.org version: v1alpha1 - description: Kamelet is the Schema for the kamelets API displayName: Kamelet kind: Kamelet name: kamelets.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/v1 kind: IntegrationPlatform metadata: name: camel-k labels: app: "camel-k" ``` An `IntegrationPlatform` resource is automatically created by default on OpenShift, so you can skip this step. Also, You can edit the `IntegrationPlatform`, to configure Camel K. The configuration from the `IntegrationPlatform` will apply to the Camel integrations created in the same namespace/project. ## Running an Integration After the initial setup, you can run a Camel integration on the cluster by creating an example `Integration`, e.g.: ``` apiVersion: camel.apache.org/v1 kind: Integration metadata: name: example spec: sources: - name: Example.java 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"); } } ``` displayName: Camel K Operator icon: - base64data: PHN2ZyB2aWV3Qm94PSIwIDAgMTMwLjIxIDEzMC4wMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9ImEiIHgxPSIzMzMuNDgiIHgyPSI0NzciIHkxPSI3MDIuNiIgeTI9IjU2My43MyIgZ3JhZGllbnRUcmFuc2Zvcm09InRyYW5zbGF0ZSg5NC4wMzggMjc2LjA2KSBzY2FsZSguOTkyMDYpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agc3RvcC1jb2xvcj0iI0Y2OTkyMyIgb2Zmc2V0PSIwIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0Y3OUEyMyIgb2Zmc2V0PSIuMTEiLz48c3RvcCBzdG9wLWNvbG9yPSIjRTk3ODI2IiBvZmZzZXQ9Ii45NDUiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iYiIgeDE9IjMzMy40OCIgeDI9IjQ3NyIgeTE9IjcwMi42IiB5Mj0iNTYzLjczIiBncmFkaWVudFRyYW5zZm9ybT0idHJhbnNsYXRlKDk0LjAzOCAyNzYuMDYpIHNjYWxlKC45OTIwNikiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBzdG9wLWNvbG9yPSIjRjY5OTIzIiBvZmZzZXQ9IjAiLz48c3RvcCBzdG9wLWNvbG9yPSIjRjc5QTIzIiBvZmZzZXQ9Ii4wOCIvPjxzdG9wIHN0b3AtY29sb3I9IiNFOTc4MjYiIG9mZnNldD0iLjQxOSIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJjIiB4MT0iNjMzLjU1IiB4Mj0iNTY2LjQ3IiB5MT0iODE0LjYiIHkyPSI5MDkuMTI iIGdyYWRpZW50VHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTg1LjQyMSA1Ni4yMzYpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agc3RvcC1jb2xvcj0iI2Y2ZTQyMyIgb2Zmc2V0PSIwIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0Y3OUEyMyIgb2Zmc2V0PSIuNDEyIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0U5NzgyNiIgb2Zmc2V0PSIuNzMzIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTQzNy44OSAtODM1LjI5KSI+PGNpcmNsZSBjeD0iNTAzLjEiIGN5PSI5MDAuMjkiIHI9IjYyLjUyIiBmaWxsPSJ1cmwoI2EpIiBzdHJva2U9InVybCgjYikiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iNC45NiIvPjxwYXRoIGQ9Ik00ODcuODkgODczLjY0YTg5LjUzIDg5LjUzIDAgMCAwLTIuNjg4LjAzMWMtMS4wNDMuMDMxLTIuNDQ1LjM2Mi00LjA2Mi45MDYgMjcuMzA5IDIwLjczNyAzNy4xMjcgNTguMTQ2IDIwLjI1IDkwLjY1Ni41NzMuMDE1IDEuMTQyLjA2MyAxLjcxOS4wNjMgMzAuODQ0IDAgNTYuNjItMjEuNDkzIDYzLjI4LTUwLjMxMi0xOS41NzItMjIuOTQzLTQ2LjExNy00MS4yOTQtNzguNS00MS4zNDR6IiBmaWxsPSJ1cmwoI2MpIiBvcGFjaXR5PSIuNzUiLz48cGF0aCBkPSJNNDgxLjE0IDg3NC41OGMtOS4wNjggMy4wNTItMjYuMzY4IDEzLjgwMi00MyAyOC4xNTYgMS4yNjMgMzQuMTk1IDI4Ljk2MSA2MS42MDcgNjMuMjUgNjIuNSAxNi44 NzctMzIuNTEgNy4wNi02OS45MTktMjAuMjUtOTAuNjU2eiIgZmlsbD0iIzI4MTcwYiIgb3BhY2l0eT0iLjc1Ii8+PHBhdGggZD0iTTUwNC44ODkgODYyLjU0NmMtLjQ3Mi0uMDMyLS45MzIuMDI4LTEuMzc1LjI1LTUuNiAyLjgwMSAwIDE0IDAgMTQtMTYuODA3IDE0LjAwOS0xMy4yMzYgMzcuOTM4LTMyLjg0NCAzNy45MzgtMTAuNjg5IDAtMjEuMzIyLTEyLjI5My0zMi41MzEtMTkuODEyLS4xNDQgMS43NzMtLjI1IDMuNTY0LS4yNSA1LjM3NSAwIDI0LjUxNSAxMy41MSA0NS44NjMgMzMuNDY5IDU3LjA2MyA1LjU4My0uNzAzIDExLjE1OC0yLjExNCAxNS4zNDQtNC45MDYgMjEuOTkyLTE0LjY2MiAyNy40NTItNDIuNTU3IDM2LjQzOC01Ni4wMzEgNS41OTYtOC40MDcgMzEuODI0LTcuNjc3IDMzLjU5NC0xMS4yMiAyLjgwNC01LjYwMS01LjYwMi0xNC04LjQwNi0xNGgtMjIuNDA2Yy0xLjU2NiAwLTQuMDI1LTIuNzgtNS41OTQtMi43OGgtOC40MDZzLTMuNzI1LTUuNjUtNy4wMzEtNS44NzV6IiBmaWxsPSIjZmZmIi8+PC9nPjwvc3ZnPg== mediatype: image/svg+xml install: spec: clusterPermissions: - rules: - apiGroups: - console.openshift.io resources: - consoleclidownloads verbs: - create - delete - deletecollection - get - list - patch - update - watch serviceAccountName: camel-k-operator deployments: - name: camel-k-operator spec: replicas: 1 selector: matchLabels: app: camel-k 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.4.0-SNAPSHOT imagePullPolicy: IfNotPresent livenessProbe: httpGet: path: /healthz port: 8081 initialDelaySeconds: 5 periodSeconds: 5 name: camel-k-operator ports: - containerPort: 8080 name: metrics 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: - policy resources: - poddisruptionbudgets verbs: - create - delete - get - update - list - patch - watch - apiGroups: - rbac.authorization.k8s.io resources: - roles - rolebindings verbs: - create - delete - deletecollection - get - list - patch - update - watch - apiGroups: - apps resources: - deployments - replicasets - statefulsets verbs: - create - delete - deletecollection - get - list - patch - update - watch - apiGroups: - batch resources: - cronjobs 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: - "" resources: - events verbs: - create - patch - get - list - watch - apiGroups: - serving.knative.dev resources: - services verbs: - create - delete - deletecollection - get - list - patch - update - watch - apiGroups: - eventing.knative.dev - messaging.knative.dev - sources.knative.dev resources: - '*' verbs: - create - delete - deletecollection - get - list - patch - update - watch - apiGroups: - coordination.k8s.io resources: - leases 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: - binding.operators.coreos.com resources: - servicebindings verbs: - create - delete - deletecollection - get - list - patch - update - watch - apiGroups: - monitoring.coreos.com resources: - servicemonitors verbs: - create - delete - deletecollection - get - list - patch - update - watch - apiGroups: - kafka.strimzi.io resources: - kafkatopics - kafkas verbs: - get - list - 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: us...@camel.apache.org name: The Apache Software Foundation maturity: alpha minKubeVersion: 1.11.0 provider: name: The Apache Software Foundation selector: matchLabels: name: camel-k-operator version: 1.4.0 ``` It contains the `operators.operatorframework.io/internal-objects` annotation you may refer to, and I fail to find duplication in roles? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org