diff --git a/docs/modules/ROOT/pages/architecture/operator.adoc b/docs/modules/ROOT/pages/architecture/operator.adoc index f9a3fb460f..3d626107cc 100644 --- a/docs/modules/ROOT/pages/architecture/operator.adoc +++ b/docs/modules/ROOT/pages/architecture/operator.adoc @@ -27,7 +27,7 @@ image::architecture/camel-k-operator-control-loop.png[control-loop] == State Machine -With the exception of the `CamelCatalog`, each CR has a dedicated state machine in charge to orchestrate the transition to the phases each CR need to go through to bring integrations to the desired state. +With the exception of the `CamelCatalog`, each CR has a dedicated state machine in charge to orchestrate the transition to the phases each CR needs to go through to bring integrations to the desired state. image::architecture/camel-k-state-machine-basic.png[State Machine] @@ -40,8 +40,8 @@ type Action interface { Handle(ctx context.Context, cr *v1.CR) (*v1.CR, error) // <2> } ---- -<1> Determine if the action can handle the CR as example by looking at the phase of the CR which is store as part of the status sub resource. -<2> Implement the action and return a non `nil` instance to signal to the controller that the CR need to be updated with the new one, instead if the method returns a `nil` instance, then nothing will happen and unless the CR changes outside the control of the operator, the same action will be invoked on the next iteration. This is useful when a CR need to delegate some work to a different controller so the CR won't be moved to the next stage till the sub operation has completed. +<1> Determine if the action can handle the CR as an example by looking at the phase of the CR which is store as part of the status sub resource. +<2> Implement the action and return a non `nil` instance to signal to the controller that the CR needs to be updated with the new one, instead, if the method returns a `nil` instance, then nothing will happen and unless the CR changes outside the control of the operator, the same action will be invoked on the next iteration. This is useful when a CR needs to delegate some work to a different controller so the CR won't be moved to the next stage till the sub operation has completed. [NOTE] ==== diff --git a/docs/modules/ROOT/pages/architecture/sources.adoc b/docs/modules/ROOT/pages/architecture/sources.adoc index 90f92a188b..5541c23912 100644 --- a/docs/modules/ROOT/pages/architecture/sources.adoc +++ b/docs/modules/ROOT/pages/architecture/sources.adoc @@ -9,8 +9,8 @@ used when needed to provide data to internal services or publish data outside, w Knative Sources fall into this category, but in general, sources described here can be used with any underlying technology. -NOTE: https://knative.dev/docs/eventing/samples/apache-camel-source/[Knative CamelSources] are a community effort to provide specific sources for Knative. -What we describe in this document is a more general approach that is alternative to Knative CamelSources and aims to supersede them. +NOTE: https://knative.dev/docs/eventing/samples/apache-camel-source/[Knative CamelSources] is a community effort to provide specific sources for Knative. +What we describe in this document is a more general approach that is an alternative to Knative CamelSources and aims to supersede them. == Sources Design @@ -18,7 +18,7 @@ The following diagram shows how sources are materialized from their elementary b image::architecture/camel-k-sources-diagram.png[Next-gen Sources diagram] -=== Kamelets as Abtract Sources +=== Kamelets as Abstract Sources In the context of sources, *Kamelets* play the role of abstract sources that can be materialized once the user provides values for all mandatory parameters contained in the Kamelet specification. @@ -77,7 +77,7 @@ spec: <3> Destination of the generated events When binding a Kamelet to a single (fully specified) Knative destination, Camel K does not attempt to do any binding, -instead it delegates the actual mapping to a Knative *SinkBinding* resource. +instead, it delegates the actual mapping to a Knative *SinkBinding* resource. The **SinkBinding** intercepts the creation of the Deployment containing the integration specification, to inject the exact coordinates of the destination (in the example, of the InMemoryChannel named `mychannel`). diff --git a/docs/modules/ROOT/pages/developers.adoc b/docs/modules/ROOT/pages/developers.adoc index 8e098d7515..94de19379d 100644 --- a/docs/modules/ROOT/pages/developers.adoc +++ b/docs/modules/ROOT/pages/developers.adoc @@ -14,7 +14,7 @@ In order to build the project, you need to comply with the following requirement * **Go version 1.13+**: needed to compile and test the project. Refer to the https://golang.org/[Go website] for the installation. * **Operator SDK v0.17.1+**: used to build the operator, and the Docker images. Instructions in the https://github.com/operator-framework/operator-sdk[Operator SDK website] (binary downloads available in the release page). -* **GNU Make**: used to define composite build actions. This should be already installed or available as package if you have a good OS (https://www.gnu.org/software/make/). +* **GNU Make**: used to define composite build actions. This should be already installed or available as a package if you have a good OS (https://www.gnu.org/software/make/). The Camel K Java runtime (camel-k-runtime) requires: @@ -75,7 +75,7 @@ After a successful build, if you're connected to a Docker daemon, you can build make images ---- -The above command produces a `camel-k` image with name `docker.io/apache/camel-k`. Sometimes you might need to produce camel-k images that need to be pushed to the custom repository e.g. `docker.io/myrepo/camel-k`, to do that you can pass a parameter `imgDestination` to the make as shown below: +The above command produces a `camel-k` image with the name `docker.io/apache/camel-k`. Sometimes you might need to produce camel-k images that need to be pushed to the custom repository e.g. `docker.io/myrepo/camel-k`, to do that you can pass a parameter `imgDestination` to the make as shown below: [source] ---- @@ -92,8 +92,8 @@ Integration tests (aimed at ensuring that the code integrates correctly with Kub The **convention** used in this repo is to name unit tests `xxx_test.go`, and name integration tests `yyy_integration_test.go`. Integration tests are all in the https://github.com/apache/camel-k/tree/master/e2e[/e2e] dir. -Since both names end with `_test.go`, both would be executed by go during build, so you need to put a special **build tag** to mark -integration tests. A integration test should start with the following line: +Since both names end with `_test.go`, both would be executed by go during the build, so you need to put a special **build tag** to mark +integration tests. An integration test should start with the following line: [source] ---- @@ -102,7 +102,7 @@ integration tests. A integration test should start with the following line: Look into the https://github.com/apache/camel-k/tree/master/e2e[/e2e] directory for examples of integration tests. -Before running a integration test, you need to be connected to a Kubernetes/OpenShift namespace. +Before running an integration test, you need to be connected to a Kubernetes/OpenShift namespace. After you log in into your cluster, you can run the following command to execute **all** integration tests: [source] @@ -126,7 +126,7 @@ If you want to install everything you have in your source code and see it runnin * You can specify a different namespace with `make install-crc project=myawesomeproject` * To uninstall Camel K, run `kamel uninstall --all --olm=false` -The commands assumes you have an already running CRC instance and logged in correctly. +The commands assume you have an already running CRC instance and logged in correctly. === For Minishift @@ -180,7 +180,7 @@ oc scale deployment/camel-k-operator --replicas 0 You can scale it back to 1 when you're done, and you have updated the operator image. -You can set up the IDE (e.g. Goland) to execute the https://github.com/apache/camel-k/blob/master/cmd/manager/main.go[/cmd/manager/main.go] file in debug mode with `operator` as argument. +You can set up the IDE (e.g. Goland) to execute the https://github.com/apache/camel-k/blob/master/cmd/manager/main.go[/cmd/manager/main.go] file in debug mode with `operator` as the argument. When configuring the IDE task, make sure to add all required environment variables in the *IDE task configuration screen*: @@ -192,4 +192,4 @@ When configuring the IDE task, make sure to add all required environment variabl After you set up the IDE task, with Java 11+ to be used by default, you can run and debug the operator process. NOTE: The operator can be fully debugged in Minishift, because it uses OpenShift S2I binary builds under the hood. -The build phase cannot be (currently) debugged in Minikube because the Kaniko builder requires that the operator, and the publisher pod share a common persistent volume. +The build phase cannot be (currently) debugged in Minikube because the Kaniko builder requires that the operator and the publisher pod share a common persistent volume. diff --git a/docs/modules/ROOT/pages/installation/installation.adoc b/docs/modules/ROOT/pages/installation/installation.adoc index ebe2c8b7e3..e4416a3851 100644 --- a/docs/modules/ROOT/pages/installation/installation.adoc +++ b/docs/modules/ROOT/pages/installation/installation.adoc @@ -1,7 +1,7 @@ [[installation]] = Installation -Camel K allows to run integrations directly on a Kubernetes or OpenShift cluster. +Camel K allows us to run integrations directly on a Kubernetes or OpenShift cluster. To use it, you need to be connected to a cloud environment or to a local cluster created for development purposes. [[requirements]] @@ -22,7 +22,7 @@ Other cluster types (such as OpenShift clusters) should *not need* prior configu == Procedure To start using Camel K you need the **"kamel"** CLI tool, that can be used to both configure the cluster and run integrations. -Look into the https://github.com/apache/camel-k/releases[release page] for latest version of the *camel-k-client* tool for your specific platform. +Look into the https://github.com/apache/camel-k/releases[release page] for the latest version of the *camel-k-client* tool for your specific platform. Download and uncompress the archive. It contains a small binary file named `kamel` that you should put into your system path. For example, if you're using Linux, you can put `kamel` in `/usr/bin`. @@ -36,9 +36,9 @@ kamel install This will configure the cluster with the Camel K custom resource definitions and install the operator on the current namespace. -IMPORTANT: Custom Resource Definitions (CRD) are cluster-wide objects and you need admin rights to install them. Fortunately this +IMPORTANT: Custom Resource Definitions (CRD) are cluster-wide objects and you need admin rights to install them. Fortunately, this operation can be done *once per cluster*. So, if the `kamel install` operation fails, you'll be asked to repeat it when logged as admin. -For Minishift, this means executing `oc login -u system:admin` then `kamel install --cluster-setup` only for first-time installation. +For Minishift, this means executing `oc login -u system:admin` then `kamel install --cluster-setup` only for the first-time installation. You're now ready to xref:running/running.adoc[run some integrations]. diff --git a/docs/modules/ROOT/pages/observability/monitoring.adoc b/docs/modules/ROOT/pages/observability/monitoring.adoc index 0eb3671eac..3b8ed09e1a 100644 --- a/docs/modules/ROOT/pages/observability/monitoring.adoc +++ b/docs/modules/ROOT/pages/observability/monitoring.adoc @@ -8,7 +8,7 @@ The https://github.com/coreos/prometheus-operator[Prometheus Operator] serves to [[prerequisites]] == Prerequisites -To take fully advantage of the Camel K monitoring capabilities, it is recommended to have a Prometheus Operator instance, that can be configured to integrate Camel K integrations. +To take full advantage of the Camel K monitoring capabilities, it is recommended to have a Prometheus Operator instance, that can be configured to integrate Camel K integrations. [[kubernetes]] === Kubernetes