// THIS FILE IS AUTOMATICALLY GENERATED: DO NOT EDIT
= image:kamelets/cron-source.svg[] Cron Source

*Provided by: "Apache Software Foundation"*

*Support Level for this Kamelet is: "Preview"*

Send events at specific time.

== Configuration Options

The following table summarizes the configuration options available for the `cron-source` Kamelet:
[width="100%",cols="2,^2,3,^2,^2,^3",options="header"]
|===
| Property| Name| Description| Type| Default| Example
| *message {empty}* *| Message| The message to generate| string| | `"hello world"`
| *schedule {empty}* *| Cron Schedule| A cron expression that will be used to trigger events generation.| string| | `"0/3 10 * * * ?"`
|===

NOTE: Fields marked with ({empty}*) are mandatory.

== Usage

This section summarizes how the `cron-source` can be used in various contexts.

=== Knative Source

The `cron-source` Kamelet can be used as Knative source by binding it to a Knative object.

.cron-source-binding.yaml
[source,yaml]
----
apiVersion: camel.apache.org/v1alpha1
kind: KameletBinding
metadata:
  name: cron-source-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1alpha1
      name: cron-source
    properties:
      message: "hello world"
      schedule: "0/3 10 * * * ?"
  sink:
    ref:
      kind: InMemoryChannel
      apiVersion: messaging.knative.dev/v1
      name: mychannel
  
----
Make sure you have xref:latest@camel-k::installation/installation.adoc[Camel K installed] into the Kubernetes cluster you're connected to.

Save the `cron-source-binding.yaml` file into your hard drive, then configure it according to your needs.

You can run the source using the following command:

[source,shell]
----
kubectl apply -f cron-source-binding.yaml
----

==== *Dependencies*

The Kamelet needs the following dependencies:


- camel:quartz

- camel:core

- camel:cron

- camel:kamelet
 

==== *Binding to Knative using the Kamel CLI:*

The procedure described above can be simplified into a single execution of the `kamel bind` command:

[source,shell]
----
kamel bind cron-source -p "source.message=hello world" -p "source.schedule=0/3 10 * * * ?" channel/mychannel
----

This will create the KameletBinding under the hood and apply it to the current namespace in the cluster.

=== Kafka Source

The `cron-source` Kamelet can be used as Kafka source by binding it to a Kafka topic.

.cron-source-binding.yaml
[source,yaml]
----
apiVersion: camel.apache.org/v1alpha1
kind: KameletBinding
metadata:
  name: cron-source-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1alpha1
      name: cron-source
    properties:
      message: "hello world"
      schedule: "0/3 10 * * * ?"
  sink:
    ref:
      kind: KafkaTopic
      apiVersion: kafka.strimzi.io/v1beta1
      name: my-topic
  
----

Ensure that you've installed https://strimzi.io/[Strimzi] and created a topic named `my-topic` in the current namespace.
Make also sure you have xref:latest@camel-k::installation/installation.adoc[Camel K installed] into the Kubernetes cluster you're connected to.

Save the `cron-source-binding.yaml` file into your hard drive, then configure it according to your needs.

You can run the source using the following command:

[source,shell]
----
kubectl apply -f cron-source-binding.yaml
----

==== *Binding to Kafka using the Kamel CLI:*

The procedure described above can be simplified into a single execution of the `kamel bind` command:

[source,shell]
----
kamel bind cron-source -p "source.message=hello world" -p "source.schedule=0/3 10 * * * ?" kafka.strimzi.io/v1beta1:KafkaTopic:my-topic
----

This will create the KameletBinding under the hood and apply it to the current namespace in the cluster.

// THIS FILE IS AUTOMATICALLY GENERATED: DO NOT EDIT
