You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by lb...@apache.org on 2019/06/07 13:11:13 UTC

[camel-k] 04/07: Fix #703: add initial SNAPSHOT CSV

This is an automated email from the ASF dual-hosted git repository.

lburgazzoli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-k.git

commit cd71e8e2701dd9acda22021186ab6db65fef6c6f
Author: nferraro <ni...@gmail.com>
AuthorDate: Thu Jun 6 12:18:40 2019 +0200

    Fix #703: add initial SNAPSHOT CSV
---
 deploy/olm-catalog/camel-k.package.yaml            |   2 +-
 .../camel-k.v0.3.3.clusterserviceversion.yaml      |   0
 ...el-k.v0.3.4-SNAPSHOT.clusterserviceversion.yaml | 390 +++++++++++++++++++++
 deploy/olm-catalog/csv-config.yaml                 |   2 +-
 deploy/operator-role-olm.yaml                      | 182 ++++++++++
 deploy/resources.go                                | 186 ++++++++++
 script/Makefile                                    |  10 +-
 script/unsnapshot_olm.sh                           |  22 ++
 8 files changed, 790 insertions(+), 4 deletions(-)

diff --git a/deploy/olm-catalog/camel-k.package.yaml b/deploy/olm-catalog/camel-k.package.yaml
index 79967b8..e061dab 100644
--- a/deploy/olm-catalog/camel-k.package.yaml
+++ b/deploy/olm-catalog/camel-k.package.yaml
@@ -18,4 +18,4 @@
 packageName: camel-k
 channels:
 - name: alpha
-  currentCSV: camel-k-operator.v0.3.3
+  currentCSV: camel-k-operator.v0.3.4-SNAPSHOT
diff --git a/deploy/olm-catalog/camel-k.v0.3.3.clusterserviceversion.yaml b/deploy/olm-catalog/camel-k/0.3.3/camel-k.v0.3.3.clusterserviceversion.yaml
similarity index 100%
rename from deploy/olm-catalog/camel-k.v0.3.3.clusterserviceversion.yaml
rename to deploy/olm-catalog/camel-k/0.3.3/camel-k.v0.3.3.clusterserviceversion.yaml
diff --git a/deploy/olm-catalog/camel-k/0.3.4-SNAPSHOT/camel-k.v0.3.4-SNAPSHOT.clusterserviceversion.yaml b/deploy/olm-catalog/camel-k/0.3.4-SNAPSHOT/camel-k.v0.3.4-SNAPSHOT.clusterserviceversion.yaml
new file mode 100644
index 0000000..9718838
--- /dev/null
+++ b/deploy/olm-catalog/camel-k/0.3.4-SNAPSHOT/camel-k.v0.3.4-SNAPSHOT.clusterserviceversion.yaml
@@ -0,0 +1,390 @@
+apiVersion: operators.coreos.com/v1alpha1
+kind: ClusterServiceVersion
+metadata:
+  annotations:
+    alm-examples: |-
+      [{
+        "apiVersion": "camel.apache.org/v1alpha1",
+        "kind": "IntegrationPlatform",
+        "metadata": {
+          "name": "example"
+        },
+        "spec": {
+          "build": {
+            "buildStrategy": "pod"
+          },
+          "resources": {
+            "contexts": [
+              "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": "IntegrationContext",
+        "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:0.3.4-SNAPSHOT
+    createdAt: "2019-05-06T16: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.v0.3.4-SNAPSHOT
+  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 context
+      displayName: Integration Context
+      kind: IntegrationContext
+      name: integrationcontexts.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+PHN0b3Agc3RvcC1jb2xvcj0iI0Y3OUEyMyIgb2Zmc2V0PSIuMTEiLz48c3RvcCBzdG9wLWNvbG9yPSIjRTk3ODI2IiBvZmZzZXQ9Ii45NDUiLz48L2xp [...]
+    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:
+                camel.apache.org/component: operator
+                name: camel-k-operator
+            spec:
+              containers:
+              - command:
+                - camel-k
+                env:
+                - name: WATCH_NAMESPACE
+                  valueFrom:
+                    fieldRef:
+                      fieldPath: metadata.namespace
+                - 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:0.3.4-SNAPSHOT
+                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
+          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.v0.3.3
+  selector:
+    matchLabels:
+      name: camel-k-operator
+  version: 0.3.4-SNAPSHOT
diff --git a/deploy/olm-catalog/csv-config.yaml b/deploy/olm-catalog/csv-config.yaml
index 76cca94..6a2abb7 100644
--- a/deploy/olm-catalog/csv-config.yaml
+++ b/deploy/olm-catalog/csv-config.yaml
@@ -22,4 +22,4 @@ crd-cr-paths:
   - deploy/crd-integration.yaml
   - deploy/crd-integration-context.yaml
   - deploy/crd-integration-platform.yaml
-role-path: deploy/operator-role-kubernetes.yaml
+role-path: deploy/operator-role-olm.yaml
diff --git a/deploy/operator-role-olm.yaml b/deploy/operator-role-olm.yaml
new file mode 100644
index 0000000..ca1ee2f
--- /dev/null
+++ b/deploy/operator-role-olm.yaml
@@ -0,0 +1,182 @@
+kind: Role
+apiVersion: rbac.authorization.k8s.io/v1beta1
+metadata:
+  name: camel-k-operator
+  labels:
+    app: "camel-k"
+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
+  attributeRestrictions: null
+  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
+  attributeRestrictions: null
+  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
+  resources:
+  - "*"
+  verbs:
+  - create
+  - delete
+  - deletecollection
+  - get
+  - list
+  - patch
+  - update
+  - watch
diff --git a/deploy/resources.go b/deploy/resources.go
index 1c85319..c328be0 100644
--- a/deploy/resources.go
+++ b/deploy/resources.go
@@ -11033,6 +11033,192 @@ rules:
   - watch
 
 `
+	Resources["operator-role-olm.yaml"] =
+		`
+kind: Role
+apiVersion: rbac.authorization.k8s.io/v1beta1
+metadata:
+  name: camel-k-operator
+  labels:
+    app: "camel-k"
+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
+  attributeRestrictions: null
+  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
+  attributeRestrictions: null
+  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
+  resources:
+  - "*"
+  verbs:
+  - create
+  - delete
+  - deletecollection
+  - get
+  - list
+  - patch
+  - update
+  - watch
+
+`
 	Resources["operator-role-openshift.yaml"] =
 		`
 kind: Role
diff --git a/script/Makefile b/script/Makefile
index 70ff17e..030b4bb 100644
--- a/script/Makefile
+++ b/script/Makefile
@@ -114,6 +114,9 @@ build-resources:
 	./script/embed_resources.sh deploy
 	go run cmd/util/json-schema-gen/jsonschemagen.go --out=./assets/json-schema
 
+build-olm:
+	operator-sdk olm-catalog gen-csv --csv-version $(VERSION) --csv-config deploy/olm-catalog/csv-config.yaml --update-crds
+
 build-compile-integration-tests:
 	go test -c -tags=integration ./test/*.go
 
@@ -179,11 +182,14 @@ package-examples:
 package-artifacts:
 	./script/package_maven_artifacts.sh $(RUNTIME_VERSION)
 
-release: clean codegen set-version build-resources build images images-push cross-compile package-examples git-tag
+unsnapshot-olm:
+	./script/unsnapshot_olm.sh
+
+release: clean codegen set-version build-resources unsnapshot-olm build images images-push cross-compile package-examples git-tag
 
 install-minishift:
 	./script/install_minishift.sh
 install-minikube:
 	./script/install_minikube.sh
 
-.PHONY: build build-operator build-kamel build-resources build-builder dep codegen images images-dec images-push test check test-integration clean release cross-compile package-examples set-version git-tag
+.PHONY: build build-operator build-kamel build-resources build-builder build-olm unsnapshot-olm dep codegen images images-dec images-push test check test-integration clean release cross-compile package-examples set-version git-tag
diff --git a/script/unsnapshot_olm.sh b/script/unsnapshot_olm.sh
new file mode 100755
index 0000000..4af2774
--- /dev/null
+++ b/script/unsnapshot_olm.sh
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+# Prefer unsnapshotting to regenerating, because changes done to snapshot file may get lost
+
+location=$(dirname $0)
+olm_catalog=${location}/../deploy/olm-catalog
+
+
+for d in $(find ${olm_catalog} -type d -name "*-SNAPSHOT*");
+do
+  mv ${d} ${d//-SNAPSHOT/}
+done
+
+for f in $(find ${olm_catalog} -type f -name "*-SNAPSHOT*");
+do
+  mv ${f} ${f//-SNAPSHOT/}
+done
+
+for f in $(find ${olm_catalog} -type f);
+do
+  sed -i 's/-SNAPSHOT//g' $f
+done