kamelets.minio-sink.kamelet.yaml Maven / Gradle / Ivy
The newest version!
# ---------------------------------------------------------------------------
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ---------------------------------------------------------------------------
apiVersion: camel.apache.org/v1
kind: Kamelet
metadata:
name: minio-sink
annotations:
camel.apache.org/kamelet.support.level: "Stable"
camel.apache.org/catalog.version: "4.8.0"
camel.apache.org/kamelet.icon: "data:image/svg+xml;base64,PHN2ZyBkYXRhLW5hbWU9IkxheWVyIDEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE2Mi42MTIgMjQuNDY1Ij48cGF0aCBkPSJNNTIuNzUxLjQxNGg5LjEwOHYyMy42M2gtOS4xMDh6TTQxLjcxMS43NGwtMTguNDg4IDkuOTJhLjkxOS45MTkgMCAwIDEtLjg1NiAwTDMuODc5Ljc0QTIuODA4IDIuODA4IDAgMCAwIDIuNTU4LjQxNGgtLjAyM0EyLjQgMi40IDAgMCAwIDAgMi42NDF2MjEuMzc2aDkuMVYxMy44NDJhLjkxOC45MTggMCAwIDEgMS4zODUtLjY4MmwxMC4zNjEgNS41NjhhMy42MzQgMy42MzQgMCAwIDAgMy4zMzYuMDI4bDEwLjkzMy01LjYzNGEuOTE3LjkxNyAwIDAgMSAxLjM3MS42OXYxMC4yMDVoOS4xVjIuNjQxQTIuNCAyLjQgMCAwIDAgNDMuMDU1LjQxNGgtLjAyM2EyLjgwOCAyLjgwOCAwIDAgMC0xLjMyMS4zMjZ6bTY1LjU2NC0uMzI2aC05LjIzN3YxMC43NTVhLjkxMy45MTMgMCAwIDEtMS4zMzguNzA2TDcyLjc2Mi42NzVhMi44MjQgMi44MjQgMCAwIDAtMS4xOTEtLjI2MWgtLjAxNmEyLjQgMi40IDAgMCAwLTIuNTM1IDIuMjI3djIxLjM3N2g5LjE2M1YxMy4yNzVhLjkxNC45MTQgMCAwIDEgMS4zMzctLjcwN2wyNC4wMzIgMTEuMmEyLjgxMyAyLjgxMyAwIDAgMCAxLjE4OC4yNiAyLjQgMi40IDAgMCAwIDIuNTM1LTIuMjI3em03LjE2MSAyMy42M1YuNDE0aDQuMTkxdjIzLjYzem0yOC44NTYuNDIxYy0xMS4yNzQgMC0xOS4yNzItNC43LTE5LjI3Mi0xMi4yMzJDMTI0LjAyIDQuNzQxIDEzMi4wNjYgMCAxNDMuMjkyIDBzMTkuMzIgNC43IDE5LjMyIDEyLjIzMy03LjkwMiAxMi4yMzItMTkuMzIgMTIuMjMyem0wLTIxLjMzM2MtOC4zODMgMC0xNC44NCAzLjIxNy0xNC44NCA5LjEgMCA1LjkyNiA2LjQ1NyA5LjEgMTQuODQgOS4xczE0Ljg4Ny0zLjE3NCAxNC44ODctOS4xYzAtNS44ODMtNi41MDQtOS4xLTE0Ljg4Ny05LjF6IiBmaWxsPSIjYzcyYzQ4Ii8+PC9zdmc+"
camel.apache.org/provider: "Apache Software Foundation"
camel.apache.org/kamelet.group: "Minio"
camel.apache.org/kamelet.namespace: "Cloud"
labels:
camel.apache.org/kamelet.type: "sink"
spec:
definition:
title: "Minio Sink"
description: |-
Upload data to MinIO.
In the header, you can set the `file` / `ce-file` property to specify the filename to upload.
If you do not set the property in the header, the Kamelet uses the exchange ID for the filename.
required:
- bucketName
- accessKey
- secretKey
- endpoint
type: object
properties:
bucketName:
title: Bucket Name
description: The Minio Bucket name.
type: string
accessKey:
title: Access Key
description: The access key obtained from MinIO.
type: string
format: password
x-descriptors:
- urn:camel:group:credentials
secretKey:
title: Secret Key
description: The secret key obtained from MinIO.
type: string
format: password
x-descriptors:
- urn:camel:group:credentials
endpoint:
title: Endpoint
description: The MinIO Endpoint. You can specify an URL, domain name, IPv4 address, or IPv6 address.
type: string
example: http://localhost:9000
autoCreateBucket:
title: Autocreate Bucket
description: Specify to automatically create the MinIO bucket.
type: boolean
default: false
keyName:
title: Key Name
description: The key name for saving an element in the bucket.
type: string
dependencies:
- "camel:core"
- "camel:minio"
- "camel:kamelet"
template:
from:
uri: "kamelet:source"
steps:
- choice:
precondition: true
when:
- simple: '${propertiesExist:!keyName}'
steps:
- choice:
when:
- simple: "${header[file]}"
steps:
- setHeader:
name: CamelMinioObjectName
simple: "${header[file]}"
- simple: "${header[ce-file]}"
steps:
- setHeader:
name: CamelMinioObjectName
simple: "${header[ce-file]}"
otherwise:
steps:
- setHeader:
name: CamelMinioObjectName
simple: "${exchangeId}"
- to:
uri: "minio:{{bucketName}}"
parameters:
autoCreateBucket: "{{autoCreateBucket}}"
secretKey: "{{secretKey}}"
accessKey: "{{accessKey}}"
endpoint: "{{endpoint}}"
keyName: "{{?keyName}}"