From 0e5c925c9aea611e0427034dee4788d385b61fe4 Mon Sep 17 00:00:00 2001 From: Andrea Cosentino Date: Fri, 5 Mar 2021 11:49:39 +0100 Subject: [PATCH 1/2] Added FTP Source Kamelet --- .../assets/images/kamelets/ftp-source.svg | 89 +++++++++++++++++++ ftp-source.kamelet.yaml | 58 ++++++++++++ 2 files changed, 147 insertions(+) create mode 100644 docs/modules/ROOT/assets/images/kamelets/ftp-source.svg create mode 100644 ftp-source.kamelet.yaml diff --git a/docs/modules/ROOT/assets/images/kamelets/ftp-source.svg b/docs/modules/ROOT/assets/images/kamelets/ftp-source.svg new file mode 100644 index 000000000..2faddf298 --- /dev/null +++ b/docs/modules/ROOT/assets/images/kamelets/ftp-source.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + ftp + + diff --git a/ftp-source.kamelet.yaml b/ftp-source.kamelet.yaml new file mode 100644 index 000000000..cf552defc --- /dev/null +++ b/ftp-source.kamelet.yaml @@ -0,0 +1,58 @@ +apiVersion: camel.apache.org/v1alpha1 +kind: Kamelet +metadata: + name: ftp-source + annotations: + camel.apache.org/kamelet.icon: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOS4xLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCAyMjEuMSAzMDAiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDIyMS4xIDMwMDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6IzgzMkVBQjt9DQoJLnN0MXtmaWxsOiNCQUJBQkE7fQ0KCS5zdDJ7ZmlsbDpub25lO30NCgkuc3Qze2ZpbGw6IzhEQzYzRjt9DQoJLnN0NHtmaWxsOiMwRjlCRDc7fQ0KCS5zdDV7ZmlsbDojRkZGRkZGO30NCgkuc3Q2e2ZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO2ZpbGw6I0ZGRkZGRjt9DQoJLnN0N3tmaWxsOiMxREExRjI7fQ0KCS5zdDh7ZmlsbDojM0Q1QTk4O30NCgkuc3Q5e2ZpbGw6IzIzMUYyMDt9DQoJLnN0MTB7ZmlsbDojMDA3QkI1O30NCgkuc3QxMXtmaWxsOiNEQzRFNDE7fQ0KCS5zdDEye2ZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO2ZpbGw6IzE4MTYxNjt9DQoJLnN0MTN7ZmlsbDojMTgxNjE2O30NCgkuc3QxNHtmaWxsOiNGMkYyRjI7fQ0KCS5zdDE1e2ZpbGw6I0UzRTNFMzt9DQoJLnN0MTZ7ZmlsbDojRDU0QjNEO30NCgkuc3QxN3tmaWxsOiNENzJCMjc7fQ0KCS5zdDE4e29wYWNpdHk6MC41NjtmaWxsOnVybCgjU1ZHSURfMV8pO30NCgkuc3QxOXtmaWxsOiM5MkQ0MDA7fQ0KCS5zdDIwe2ZpbGw6IzAwQjlFNDt9DQoJLnN0MjF7Zm9udC1mYW1pbHk6J09wZW5TYW5zLUJvbGQnO30NCgkuc3QyMntmb250LXNpemU6NDUuNDExNXB4O30NCgkuc3QyM3tmaWxsOiMyQjM5OTA7fQ0KCS5zdDI0e2ZpbGw6IzNGOUMzNTt9DQoJLnN0MjV7ZmlsbDojOEZDRUQ4O30NCgkuc3QyNntmaWxsOiNEMjFGMjE7fQ0KCS5zdDI3e2ZpbGw6I0Q2RDZENjt9DQoJLnN0Mjh7ZmlsbDojRjFGMUYxO30NCgkuc3QyOXtmaWxsOiNDMzIyNjU7fQ0KCS5zdDMwe2ZpbGw6IzhDMzEyMzt9DQoJLnN0MzF7ZmlsbDojRTA1MjQzO30NCgkuc3QzMntmaWxsOiM1RTFGMTg7fQ0KCS5zdDMze2ZpbGw6I0YyQjBBOTt9DQoJLnN0MzR7ZmlsbDojQ0FDQ0NFO30NCgkuc3QzNXtmaWxsOiNBMUFGREI7fQ0KCS5zdDM2e2ZpbGw6IzAwMjA4Nzt9DQo8L3N0eWxlPg0KPGc+DQoJPGc+DQoJCTxjaXJjbGUgY2xhc3M9InN0MjAiIGN4PSIxMTEuNiIgY3k9IjE5MS43IiByPSI4OC42Ii8+DQoJCTxnPg0KCQkJPHBhdGggY2xhc3M9InN0NSIgZD0iTTExMC42LDk5LjljLTUwLjgsMC05Mi4yLDQxLjQtOTIuMiw5Mi4yYzAsNTAuOSw0MS40LDkyLjIsOTIuMiw5Mi4yaDBjNTAuOCwwLDkyLjItNDEuNCw5Mi4yLTkyLjINCgkJCQlDMjAyLjgsMTQxLjMsMTYxLjQsOTkuOSwxMTAuNiw5OS45eiBNMTgzLjIsMTQzLjljLTcsNi44LTEzLjMsMTQuNC0xOC42LDIyLjdjLTAuNS0wLjEtMC45LTAuMi0xLjQtMC4yYy0xLDAtMS45LDAuMy0yLjgsMC43DQoJCQkJYy00LjYtNi41LTguNC0xMy4xLTExLjMtMTkuNmMxLjctMS4xLDIuOC0zLDIuOC01LjJjMC0wLjYtMC4xLTEuMS0wLjMtMS43YzYuMy00LjQsMTEuNy05LjMsMTYtMTQuMw0KCQkJCUMxNzMuNiwxMzEuNCwxNzguOCwxMzcuMywxODMuMiwxNDMuOXogTTY4LjgsMTY5LjFjNC44LTAuNSw5LjYtMS4yLDE0LjUtMmMxLDIsMy4xLDMuNCw1LjUsMy40aDBjMC44LDAsMS43LTAuMiwyLjQtMC41DQoJCQkJYzYuMiw4LjksMTMuNSwxNy4xLDIxLjgsMjQuNGM4LjcsNy42LDE4LjIsMTQsMjguMSwxOS4xYy0wLjEsMC41LTAuMiwxLTAuMiwxLjVjMCwyLjQsMS40LDQuNSwzLjQsNS41DQoJCQkJYy0xLjEsNy4yLTEuNiwxNC41LTEuNSwyMS42Yy0xLjIsMC4zLTIuMywwLjgtMy4yLDEuNmMtOS4zLTYuNi0xOS40LTEyLjItMzAuMS0xNi41Yy0xMi45LTUuMi0yNi4yLTguNC0zOS41LTkuNw0KCQkJCWMtMC44LTMuNS0zLjktNi4xLTcuNi02LjJjLTEtNi4zLTEuNS0xMi43LTEuNS0xOS4yYzAtNS40LDAuNC0xMC43LDEuMS0xNS45QzY1LjUsMTc1LjcsNjguMywxNzIuOCw2OC44LDE2OS4xeiBNNjQuNywxNjEuMg0KCQkJCWMyLjMtOC43LDUuNS0xNyw5LjctMjQuN2MyLjYsNy45LDYsMTUuNywxMC4yLDIzLjFjLTEuMSwxLTEuOCwyLjMtMiwzLjhjLTQuOCwwLjgtOS41LDEuNS0xNC4zLDEuOQ0KCQkJCUM2Ny43LDE2My42LDY2LjQsMTYyLjEsNjQuNywxNjEuMnogTTE0Ni41LDIwOC45Yy0xLjgsMC4yLTMuNCwxLjEtNC40LDIuNGMtOS43LTUtMTktMTEuMi0yNy42LTE4LjdjLTguMi03LjItMTUuMy0xNS4zLTIxLjQtMjQNCgkJCQljMS0xLDEuNi0yLjQsMS43LTMuOWMxNy40LTQuMSwzMy40LTEwLjMsNDYuNy0xNy44YzEuMSwxLDIuNSwxLjYsNC4xLDEuNmgwYzAuNCwwLDAuOCwwLDEuMi0wLjFjMi45LDYuOCw2LjgsMTMuNiwxMS42LDIwLjMNCgkJCQljLTAuOSwxLjEtMS41LDIuNS0xLjUsNGMwLDEuNiwwLjYsMy4xLDEuNyw0LjJjLTMuNyw3LTYuOSwxNC40LTkuMywyMi4yQzE0OC4yLDIwMi4zLDE0Ny4zLDIwNS42LDE0Ni41LDIwOC45eiBNMTQ0LjQsMTExLjcNCgkJCQljNy40LDMuMSwxNC4yLDcuMiwyMC40LDEyLjFjLTQuMSw0LjctOS4yLDkuMy0xNS4zLDEzLjVjLTEuMS0wLjgtMi40LTEuNC0zLjgtMS40Yy0wLjIsMC0wLjMsMC0wLjUsMC4xDQoJCQkJQzE0Mi45LDEyNy4zLDE0Mi41LDExOC45LDE0NC40LDExMS43eiBNMTEwLjYsMTA0LjljMTEuMSwwLDIxLjcsMi4xLDMxLjUsNS45Yy0yLjEsNy43LTEuNywxNi42LDAuNywyNS45Yy0yLDEtMy40LDMuMS0zLjQsNS41DQoJCQkJYzAsMC41LDAuMSwwLjksMC4yLDEuNGMtMTMsNy40LTI4LjcsMTMuNS00NS42LDE3LjVjLTEuMS0xLjgtMy4xLTMuMS01LjMtMy4xYy0wLjcsMC0xLjQsMC4xLTIsMC40Yy00LjUtNy45LTguMS0xNi4zLTEwLjctMjQuOA0KCQkJCWM2LjQtMTEsMTQuNi0yMC41LDI0LjQtMjguMUMxMDMuOCwxMDUuMSwxMDcuMSwxMDQuOSwxMTAuNiwxMDQuOXogTTkzLjIsMTA2LjZjLTcuMSw2LjMtMTMuNCwxMy43LTE4LjUsMjINCgkJCQljLTEuMi00LjktMi4xLTkuOC0yLjctMTQuN0M3OC42LDExMC42LDg1LjgsMTA4LjEsOTMuMiwxMDYuNnogTTY5LjYsMTE1LjFjMC43LDUuNSwxLjgsMTEsMy4zLDE2LjVjLTUuMSw4LjgtOS4xLDE4LjQtMTEuOCwyOC41DQoJCQkJYy0wLjEsMC0wLjMsMC0wLjQsMGMtMy44LDAtNi45LDIuNi03LjgsNi4yYy04LjgsMC4xLTE3LjItMC41LTI1LjEtMS44QzM1LDE0My4yLDUwLjEsMTI1LjUsNjkuNiwxMTUuMXogTTIzLjMsMTkyLjENCgkJCQljMC04LjMsMS4yLTE2LjQsMy40LTI0YzcuNiwxLjMsMTUuNywyLDI0LjEsMmMwLjcsMCwxLjMsMCwyLTAuMWMwLjYsMi43LDIuNiw0LjksNS4yLDUuOGMtMC43LDUuMy0xLjEsMTAuOC0xLjEsMTYuMw0KCQkJCWMwLDYuOCwwLjUsMTMuNSwxLjYsMjBjLTIsMC45LTMuNiwyLjctNC4zLDQuOGMtOC45LDAuMS0xNy43LDEuMS0yNi40LDNDMjUsMjExLjIsMjMuMywyMDEuOCwyMy4zLDE5Mi4xeiBNMjkuMiwyMjMuNA0KCQkJCWM4LjItMS43LDE2LjUtMi42LDI0LjktMi44YzAuNiwzLjksMy45LDYuOCw4LDYuOGgwYzAsMCwwLjEsMCwwLjEsMGM1LjgsMTkuOCwxNi42LDM3LjIsMzEuMSw1MC4xDQoJCQkJQzYzLjgsMjcxLjYsMzkuOCwyNTAuOSwyOS4yLDIyMy40eiBNMTEwLjYsMjc5LjNMMTEwLjYsMjc5LjNjLTMuNCwwLTYuOC0wLjItMTAuMi0wLjZDODQsMjY2LDcyLDI0Ny43LDY1LjcsMjI2LjYNCgkJCQljMi0xLjEsMy42LTIuOSw0LjEtNS4yYzEyLjksMS4zLDI1LjcsNC40LDM4LjIsOS40YzEwLjQsNC4yLDIwLjIsOS42LDI5LjIsMTZjLTAuNSwxLTAuNywyLjEtMC43LDMuM2MwLDQuMiwzLjMsNy43LDcuNSw4DQoJCQkJYzAuNiw0LjUsMS41LDksMi43LDEzLjRDMTM1LjYsMjc2LjUsMTIzLjQsMjc5LjMsMTEwLjYsMjc5LjN6IE0xNTAsMjY5LjljLTEtNC4xLTEuOC04LjItMi40LTEyLjNjMC42LTAuMywxLjItMC42LDEuOC0xDQoJCQkJYzMuMSwyLjgsNiw1LjcsOC43LDguN0MxNTUuNSwyNjYuOSwxNTIuOCwyNjguNCwxNTAsMjY5Ljl6IE0xNjEuMywyNjNjLTMtMy4zLTYuMS02LjQtOS41LTkuNGMwLjUtMS4xLDAuOS0yLjMsMC45LTMuNg0KCQkJCWMwLTMuOC0yLjctNy02LjItNy44Yy0wLjEtNywwLjQtMTQsMS41LTIxYzEuOC0wLjIsMy4zLTEuMiw0LjMtMi42YzEyLjQsNC45LDI1LjMsNy44LDM4LjMsOC41QzE4NC4xLDI0MS41LDE3NCwyNTMuOSwxNjEuMywyNjMNCgkJCQl6IE0xOTEuNSwyMjQuNmMtMTMtMC42LTI1LjktMy40LTM4LjMtOC4zYzAuMS0wLjQsMC4xLTAuOCwwLjEtMS4yYzAtMi4zLTEuMy00LjMtMy4xLTUuNGMwLjgtMy4yLDEuNi02LjQsMi42LTkuNQ0KCQkJCWMyLjQtNy41LDUuNC0xNC42LDktMjEuNGMwLjQsMC4xLDAuOSwwLjEsMS4zLDAuMmgwYzEsMCwyLTAuMywyLjktMC43YzIuMSwyLjQsNC4zLDQuOCw2LjYsNy4xYzcuNiw3LjQsMTUuOCwxMy42LDI0LjMsMTguNg0KCQkJCUMxOTYsMjExLDE5NC4yLDIxOCwxOTEuNSwyMjQuNnogTTE3NC40LDE4My40Yy0yLjMtMi4yLTQuNC00LjUtNi41LTYuOGMwLjktMS4xLDEuNC0yLjQsMS40LTMuOWMwLTEuNi0wLjYtMy0xLjYtNC4xDQoJCQkJYzUuMS03LjgsMTAuOS0xNSwxNy41LTIxLjRjOCwxMy4xLDEyLjUsMjguNiwxMi41LDQ1YzAsMy0wLjIsNi0wLjUsOC45QzE4OS4zLDE5Ni4yLDE4MS42LDE5MC40LDE3NC40LDE4My40eiIvPg0KCQk8L2c+DQoJPC9nPg0KCTxnPg0KCQk8Zz4NCgkJCTxwYXRoIGQ9Ik0xNjguMSwxLjNjLTAuOC0wLjktMi0xLjMtMy4xLTEuM0g0LjRDMiwwLDAsMiwwLDQuNHYyOTEuM2MwLDIuNCwyLDQuNCw0LjQsNC40aDIxMi40YzIuNCwwLDQuNC0yLDQuNC00LjRWNTcuOA0KCQkJCWMwLTEuMS0wLjQtMi4yLTEuMi0zTDE2OC4xLDEuM3ogTTE2OS4zLDE1LjJsMzkuNSw0MC43aC0zOS41VjE1LjJ6IE04LjcsOC43aDE1MS44djQ5LjZjMCwwLjMsMC4xLDAuNiwwLjIsMC45DQoJCQkJYy0wLjEsMC4zLTAuMiwwLjYtMC4yLDAuOWMwLDIuNCwyLDQuNCw0LjQsNC40aDQ3LjV2MjI2LjdIOC43VjguN3oiLz4NCgkJPC9nPg0KCTwvZz4NCgk8cmVjdCB4PSIwIiB5PSI0OC40IiBjbGFzcz0ic3QyIiB3aWR0aD0iMjIxLjciIGhlaWdodD0iNzYiLz4NCgk8dGV4dCB0cmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAxIDc3LjgyNTIgODIuOTEyOCkiIGNsYXNzPSJzdDkgc3QyMSBzdDIyIj5mdHA8L3RleHQ+DQo8L2c+DQo8L3N2Zz4NCg==" + camel.apache.org/provider: "Apache Software Foundation" + labels: + camel.apache.org/kamelet.type: "source" +spec: + definition: + title: "FTP Source" + description: |- + Receive data from an FTP Server. + required: + - host + - port + - username + - password + - directoryName + properties: + host: + title: Host + description: Hostname of the FTP server + type: string + port: + title: Port + description: Port of the FTP server + type: string + default: 21 + username: + title: Username + description: The username to access the FTP server + type: string + password: + title: Password + description: The password to access the FTP server + type: string + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:password + directoryName: + title: directoryName + description: The starting directory + type: string + types: + out: + mediaType: application/json + dependencies: + - "camel:jackson" + flow: + from: + uri: "ftp:{{username}}@{{host}}:{{port}}/{{directoryName}}" + parameters: + password: "{{password}}" + steps: + - marshal: + json: {} + - to: "kamelet:sink" From b505871c0aab925b2b420dfa51bf4aba91f16248 Mon Sep 17 00:00:00 2001 From: Andrea Cosentino Date: Fri, 5 Mar 2021 11:56:53 +0100 Subject: [PATCH 2/2] Added FTP Source Kamelet --- docs/modules/ROOT/nav.adoc | 1 + docs/modules/ROOT/pages/ftp-source.adoc | 67 +++++++++++++++++++++++++ ftp-source.kamelet.yaml | 2 - 3 files changed, 68 insertions(+), 2 deletions(-) create mode 100644 docs/modules/ROOT/pages/ftp-source.adoc diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc index 4ca8d633f..e512fe2bb 100644 --- a/docs/modules/ROOT/nav.adoc +++ b/docs/modules/ROOT/nav.adoc @@ -3,6 +3,7 @@ * xref:ROOT:aws-s3-source.adoc[image:kamelets/aws-s3-source.svg[] AWS S3 Source] * xref:ROOT:aws-sqs-source.adoc[image:kamelets/aws-sqs-source.svg[] AWS SQS Source] * xref:ROOT:bitcoin-source.adoc[image:kamelets/bitcoin-source.svg[] Bitcoin Source] +* xref:ROOT:ftp-source.adoc[image:kamelets/ftp-source.svg[] FTP Source] * xref:ROOT:http-source.adoc[image:kamelets/http-source.svg[] HTTP Source] * xref:ROOT:jira-source.adoc[image:kamelets/jira-source.svg[] Jira Source] * xref:ROOT:kafka-source.adoc[image:kamelets/kafka-source.svg[] Kafka Source] diff --git a/docs/modules/ROOT/pages/ftp-source.adoc b/docs/modules/ROOT/pages/ftp-source.adoc new file mode 100644 index 000000000..4b4e59f72 --- /dev/null +++ b/docs/modules/ROOT/pages/ftp-source.adoc @@ -0,0 +1,67 @@ +// THIS FILE IS AUTOMATICALLY GENERATED: DO NOT EDIT += image:kamelets/ftp-source.svg[] FTP Source + +*Provided by: "Apache Software Foundation"* + +Receive data from an FTP Server. + +== Configuration Options + +The following table summarizes the configuration options available for the `ftp-source` Kamelet: +[width="100%",cols="2,^2,3,^2,^2,^3",options="header"] +|=== +| Property| Name| Description| Type| Default| Example +| *directoryName {empty}* *| directoryName| The starting directory| string| | +| *host {empty}* *| Host| Hostname of the FTP server| string| | +| *password {empty}* *| Password| The password to access the FTP server| string| | +| *port {empty}* *| Port| Port of the FTP server| string| `21`| +| *username {empty}* *| Username| The username to access the FTP server| string| | +|=== + +NOTE: Fields marked with ({empty}*) are mandatory. + +== Usage + +This section summarizes how the `ftp-source` can be used in various contexts. + +=== Knative Source + +The `ftp-source` Kamelet can be used as Knative source by binding it to a Knative object. + +.ftp-source-binding.yaml +[source,yaml] +---- +apiVersion: camel.apache.org/v1alpha1 +kind: KameletBinding +metadata: + name: ftp-source-binding +spec: + source: + ref: + kind: Kamelet + apiVersion: camel.apache.org/v1alpha1 + name: ftp-source + properties: + directoryName: "The directoryName" + host: "The Host" + password: "The Password" + username: "The Username" + 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 `ftp-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 ftp-source-binding.yaml +---- +// THIS FILE IS AUTOMATICALLY GENERATED: DO NOT EDIT diff --git a/ftp-source.kamelet.yaml b/ftp-source.kamelet.yaml index cf552defc..935b3d4b7 100644 --- a/ftp-source.kamelet.yaml +++ b/ftp-source.kamelet.yaml @@ -53,6 +53,4 @@ spec: parameters: password: "{{password}}" steps: - - marshal: - json: {} - to: "kamelet:sink"