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

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

commit b0a0af7bcbb904187951a26c9f3fea2aa20bcce0
Author: Pasquale Congiusti <pasquale.congiu...@gmail.com>
AuthorDate: Wed Jun 21 10:33:22 2023 +0200

    doc: tekton cicd
---
 docs/modules/ROOT/nav.adoc                         |   5 +-
 docs/modules/ROOT/pages/pipeline/tekton.adoc       |  60 ++++++
 .../ROOT/pages/tutorials/tekton/tekton.adoc        | 236 ---------------------
 docs/modules/ROOT/pages/tutorials/tutorials.adoc   |   8 -
 4 files changed, 63 insertions(+), 246 deletions(-)

diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc
index ff74541c5..e01203e34 100644
--- a/docs/modules/ROOT/nav.adoc
+++ b/docs/modules/ROOT/nav.adoc
@@ -35,7 +35,6 @@
 ** xref:running/local.adoc[Run Locally]
 ** xref:running/promoting.adoc[Promote an Integration]
 ** xref:running/knative-sink.adoc[Knative Sinks]
-** xref:tutorials/tutorials.adoc[Examples]
 * xref:configuration/configuration.adoc[Configuration]
 ** xref:configuration/build-time-properties.adoc[Build time properties]
 ** xref:configuration/components.adoc[Components]
@@ -43,7 +42,9 @@
 ** xref:configuration/runtime-properties.adoc[Properties]
 ** xref:configuration/runtime-config.adoc[Runtime configuration]
 ** xref:configuration/runtime-resources.adoc[Runtime resources]
-* xref:pipeline/pipeline.adoc[Pipeline]
+* Pipelines
+* xref:pipeline/pipeline.adoc[Basic]
+* xref:pipeline/tekton.adoc[Tekton]
 * Observability
 ** xref:observability/logging.adoc[Logging]
 *** xref:observability/logging/operator.adoc[Operator]
diff --git a/docs/modules/ROOT/pages/pipeline/tekton.adoc 
b/docs/modules/ROOT/pages/pipeline/tekton.adoc
new file mode 100644
index 000000000..cd62fc3f9
--- /dev/null
+++ b/docs/modules/ROOT/pages/pipeline/tekton.adoc
@@ -0,0 +1,60 @@
+[[full-fledged-pipeline]]
+= Full fledged Pipeline
+
+If you're running a production grade enterprise system, you likely want to use 
a full fledged CICD technology. The basic features provided by our 
xref:pipeline/pipeline.adoc[homemade Pipeline] may be definetely limited in 
such situation. For those production grade requirements we suggest to integrate 
one of the many CICD technologies around. One that we want to suggest and for 
which we provide an opinionated approach is https://tekton.dev/[Tekton CICD].
+
+[[tekton-pipeline]]
+== Integrate with Tekton
+
+In Camel K version 2 we are supporting a Task which we're willing to include 
in https://hub.tekton.dev/[Tekton Hub]. Here it follows the instructions and 
some example to show you how to adopt this technology togheter with Camel K. 
The prerequisite is to have Camel K and Tekton operators up and running. This 
brief guide requires certain previous familiarity with Tekton technology as 
well.
+
+=== Install the Task
+
+```shell
+kubectl apply -f 
https://raw.githubusercontent.com/apache/camel-k/main/tekton/kamel-run/0.1/kamel-run.yaml
+```
+=== Parameters
+
+- **camel-k-image**: The name of the image containing the Kamel CLI 
(_default:_ docker.io/apache/camel-k:1.12.0).
+- **filename**: the file containing the Integration source.
+- **namespace**: the namespace where to run the Integration (_default:_ the 
task execution namespace).
+- **container-image**: the container image to use for this Integration. Useful 
when you want to build your own container for the Integration (_default:_ 
empty, will trigger an Integration build).
+- **wait**: wait for the Integration to run before finishing the task. Useful 
when you want to get the **integration-phase** result (_default:_ "false").
+
+=== Workspaces
+
+* **source**: A 
https://github.com/tektoncd/pipeline/blob/main/docs/workspaces.md[Workspace] 
containing the Integration source to run.
+
+=== Results
+
+- **integration-name**: the Integration name which was created/updated.
+- **integration-phase**: the status of the Integration, tipycally used with 
**wait: true** input parameter.
+
+=== Platforms
+
+The Task can be run on `linux/amd64` platform.
+
+=== Usage
+
+The Task can be used in several ways to accomodate the different build and 
deployment strategy you may have.
+
+=== Create the Service Account
+
+As we will do delegate the task, the creation of an Integration, we need to 
provide a `ServiceAccount` with the privileges required by the tasks:
+
+```shell
+kubectl apply -f  
https://raw.githubusercontent.com/apache/camel-k/main/tekton/kamel-run/0.1/support/camel-k-tekton.yaml
+```
+
+[[tekton-pipeline-examples]]
+== Examples
+
+Here some examples that may resylt useful for your use case.
+
+=== Delegate build to operator
+
+Use the 
https://raw.githubusercontent.com/apache/camel-k/main/tekton/kamel-run/0.1/samples/run-operator-build.yaml[Tekton
 Camel K operator builder sample] in order to fetch a Git repository and run a 
Camel K Integration delegating the build to the Camel K operator.
+
+=== Full pipeline with custom build
+
+Use the 
https://raw.githubusercontent.com/apache/camel-k/main/tekton/kamel-run/0.1/samples/run-external-build.yaml[Tekton
 Camel K external builder sample] as a reference for a full pipeline where you 
define your own process of building the Camel application and using the 
`kamel-run` Task as last step in order to deploy the Integration and let Camel 
K operator managing it.
\ No newline at end of file
diff --git a/docs/modules/ROOT/pages/tutorials/tekton/tekton.adoc 
b/docs/modules/ROOT/pages/tutorials/tekton/tekton.adoc
deleted file mode 100644
index 31f520a09..000000000
--- a/docs/modules/ROOT/pages/tutorials/tekton/tekton.adoc
+++ /dev/null
@@ -1,236 +0,0 @@
-[[tutorials-tekton]]
-= Camel K in Tekton Pipelines
-
-[[tutorials-tekton-introduction]]
-== Introduction
-
-NOTE: Available from Camel K 1.8.0
-
-Camel K can be directly used in https://github.com/tektoncd/pipeline[Tekton 
Pipelines] tasks since it's container image ships the `kamel` CLI tool, that
-can be used to create all needed resources by interacting with the Kubernetes 
cluster.
-
-For example, the following Tekton pipeline task can be used to run an 
integration:
-
-[#camel-k-task-run-integration]
-[source,yaml]
-----
-apiVersion: tekton.dev/v1alpha1
-kind: Task
-metadata:
-  name: camel-k-run-integration
-spec:
-  inputs:
-    resources:
-      - name: repository
-        type: git
-    params:
-      - name: file
-        description: The integration file to run
-  steps:
-    - name: run-integration
-      image: docker.io/apache/camel-k:1.8.0 //<1>
-      workingDir: /workspace/repository
-      command:
-        - kamel
-      args:
-        - "run"
-        - "--wait"
-        - "$(inputs.params.file)" //<2>
-----
-
-
-<1> The base image for the step is `apache/camel-k:1.8.0`
-<2> It executes command `kamel run --wait ${inputs.params.file}`, with file to 
run received as parameter
-
-When executed, such task creates an integration resource from the given file 
(which is supposed to be contained in the input git repository) and waits for 
the integration to be fully running before completing.
-
-This task is a building block for more complex scenarios that can be composed 
in Tekton pipelines.
-If you want to learn more, just follow the remainder of the tutorial.
-
-[[tutorials-tekton-prerequisites]]
-== Prerequisites
-
-This tutorial assumes the following requirements are met:
-
-* OpenShift (or OKD) 4+ cluster (works also on "vanilla" Kubernetes with some 
adjustment) and `oc` binary tool
-* Tekton Pipelines 0.5.2 (different versions may need adjustments)
-* Camel K Client Tools 1.0.0-M2 (`kamel` binary tool)
-
-[[tutorials-tekton-cluster-setup]]
-== Cluster Setup
-
-This tutorial assumes that **Tekton Pipelines are already installed** in the 
cluster. Refer to the https://github.com/tektoncd/pipeline[Tekton documentation]
-to learn how to install them.
-
-Camel K cluster resources need to be installed on the cluster:
-
-[source,bash]
-----
-# Use the oc tool to login as cluster admin to the target cluster, then
-kamel install --cluster-setup
-----
-
-This will install the Camel K CRD (custom resource definitions) and roles to 
access them.
-You can switch to a standard user after doing this operation.
-
-[[tutorials-tekton-creating-the-pipeline]]
-== Creating the Pipeline
-
-We're going to create a pipeline on a new namespace. The first step is to 
create the namespace:
-
-[source,bash]
-----
-oc new-project camel-pipelines
-----
-
-=== Setting up a ServiceAccount
-
-Any running container that needs to interact with the Kubernetes API (in our 
case, to create deployment and integration resources) must
-have special permissions granted to its service account.
-
-Download the 
xref:attachment$tekton/camel-k-pipeline-permissions.yaml[camel-k-pipeline-permissions.yaml]
 file and save it into a directory in your hard drive.
-Then install it using the `oc` client tool:
-
-[source,bash]
-----
-oc apply -f camel-k-pipeline-permissions.yaml
-----
-
-This creates a 
https://kubernetes.io/docs/reference/access-authn-authz/service-accounts-admin/[Kubernetes
 ServiceAccount] named `camel-k-pipeline`
-that is authorized to create the same kind of resources that the Camel K 
operator needs to create. We'll use that service account to run our pipeline.
-
-=== Creating the Pipeline Definition
-
-Let's now create the pipeline definition. Download the 
xref:attachment$tekton/camel-k-pipeline-task-definition.yaml[camel-k-pipeline-task-definition.yaml]
 file
-and apply it to the cluster:
-
-[source,bash]
-----
-oc apply -f camel-k-pipeline-task-definition.yaml
-----
-
-This creates a series of resources, including a pipeline definition that you 
can immediately see on the OpenShift developer console.
-
-image::tekton/tekton-pipeline-definition.png[View of the Camel K Tekton 
pipeline in the OpenShift developer console]
-
-The pipeline just created is composed of two tasks.
-
-The last task (`camel-k-run-integration`) is the one we've 
<<camel-k-task-run-integration,already described in the introduction>>, while 
the first task just installs the operator in the current namespace.
-The definition of the first task is shown in the following excerpt:
-
-[source,yaml]
-----
-apiVersion: tekton.dev/v1alpha1
-kind: Task
-metadata:
-  name: camel-k-install-operator
-spec:
-  steps:
-    - name: install
-      image: docker.io/apache/camel-k:1.8.0
-      command:
-        - kamel
-      args:
-        - "install"
-        - "--skip-cluster-setup"
-----
-
-As you see, it's just doing a `kamel install --skip-cluster-setup` (we've 
already done the cluster setup in the 
<<tutorials-tekton-cluster-setup,preparation phase>>).
-
-
-Both tasks are executed in sequence in the pipeline that is shown below.
-
-[source,yaml]
-----
-apiVersion: tekton.dev/v1alpha1
-kind: Pipeline
-metadata:
-  name: camel-k-pipeline
-spec:
-  resources:
-    - name: source-repo
-      type: git
-  tasks:
-    - name: install-operator
-      taskRef:
-        name: camel-k-install-operator
-    - name: run-integration
-      runAfter: [install-operator]
-      taskRef:
-        name: camel-k-run-integration
-      resources:
-        inputs:
-          - name: repository
-            resource: source-repo
-      params:
-        - name: file
-          value: "examples/tekton/hello.groovy"
-----
-
-The integration file to be executed is set to `examples/tekton/hello.groovy` 
that is a simple "Hello World" integration contained in the Camel K
-github repository 
https://github.com/apache/camel-k/tree/main/example/tekton[example/tekton 
directory].
-
-In order to specify the actual source repository, the definition file contains 
also the following resource:
-
-[source,yaml]
-----
-apiVersion: tekton.dev/v1alpha1
-kind: PipelineResource
-metadata:
-  name: camel-k-examples-git
-spec:
-  type: git
-  params:
-    - name: revision
-      value: main
-    - name: url
-      value: https://github.com/apache/camel-k
-----
-
-The repo will be now used as input for the 
<<camel-k-task-run-integration,run-integration task>> in the pipeline.
-
-=== Triggering a Pipeline Execution
-
-Everything is now ready to be executed and the last thing missing is a 
trigger. Download the 
xref:attachment$tekton/camel-k-pipeline-task-run.yaml[camel-k-pipeline-task-run.yaml]
 file
-and apply it to the cluster:
-
-[source,bash]
-----
-oc apply -f camel-k-pipeline-task-run.yaml
-----
-
-The file contains only a PipelineRun resource:
-
-[source,yaml]
-----
-apiVersion: tekton.dev/v1alpha1
-kind: PipelineRun
-metadata:
-  name: camel-k-pipeline-run-1
-spec:
-  pipelineRef:
-    name: camel-k-pipeline
-  serviceAccount: 'camel-k-pipeline' //<1>
-  resources:
-    - name: source-repo
-      resourceRef:
-        name: camel-k-examples-git //<2>
-----
-
-<1> The PipelineRun binds the pipeline to the service account previously 
created
-<2> It also binds the pipeline to the Camel K repository containing the 
examples
-
-The creation of the file starts the execution of the pipeline and its progress 
can be monitored on the OpenShift developer console.
-
-image::tekton/tekton-pipeline-run.png[View of the Camel K Tekton pipeline 
execution in the OpenShift developer console]
-
-CAUTION: To execute the PipelineRun again, delete previous runs before 
re-applying
-
-The result of the pipeline execution is the Camel K operator and an 
integration named `hello` running on the cluster:
-
-image::tekton/tekton-pipeline-result.png[Result of the Camel K Tekton pipeline 
execution]
-
-There are certainly other ways to trigger an execution of a pipeline, like as 
reaction to a change in the git repository,
-but this is left to you as exercise ;)
-
-Refer to the https://github.com/tektoncd/pipeline[Tekton repository] for more 
information.
diff --git a/docs/modules/ROOT/pages/tutorials/tutorials.adoc 
b/docs/modules/ROOT/pages/tutorials/tutorials.adoc
deleted file mode 100644
index 935fb152e..000000000
--- a/docs/modules/ROOT/pages/tutorials/tutorials.adoc
+++ /dev/null
@@ -1,8 +0,0 @@
-[[tutorials]]
-= Camel K Tutorials
-
-The 
https://github.com/apache/camel-k-examples/tree/main/generic-examples[apache/camel-k-examples]
 repository contains a curated collection of
-tutorials that drives you from the basics of Camel K to more advanced features.
-
-NOTE: The xref:tutorials/tekton/tekton.adoc[Tekton Pipelines] example is still 
available here and it's going to be migrated to
-the 
https://github.com/apache/camel-k/tree/main/examples[apache/camel-k-examples] 
repository.

Reply via email to