This is an automated email from the ASF dual-hosted git repository. acosentino pushed a commit to branch kinesis-firehose-sink in repository https://gitbox.apache.org/repos/asf/camel-kamelets.git
commit dae6dd5739c82814f0b8131b3f68a54914a39375 Author: Andrea Cosentino <anco...@gmail.com> AuthorDate: Mon Nov 14 14:39:03 2022 +0100 Added Kinesis Firehose IT Test Signed-off-by: Andrea Cosentino <anco...@gmail.com> --- .../aws-kinesis-firehose/sink/terraform/main.tf | 86 ++++++++++++++++++++++ .../sink/timer-aws-kinesis-firehose-it-test.sh | 37 ++++++++++ .../sink/timer-aws-kinesis-firehose.yaml | 29 ++++++++ 3 files changed, 152 insertions(+) diff --git a/it-tests/aws/aws-kinesis-firehose/sink/terraform/main.tf b/it-tests/aws/aws-kinesis-firehose/sink/terraform/main.tf new file mode 100644 index 00000000..5b8a1405 --- /dev/null +++ b/it-tests/aws/aws-kinesis-firehose/sink/terraform/main.tf @@ -0,0 +1,86 @@ +/* + * 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. + */ + +terraform { + required_providers { + aws = { + source = "hashicorp/aws" + version = "~> 3.27" + } + } + + required_version = ">= 0.14.9" +} + +provider "aws" { + profile = "default" + region = "eu-west-1" +} + +variable "kinesis_delivery_stream_name" { + type = string + default = "kinesis-camel-test-123" +} + +resource "aws_kinesis_firehose_delivery_stream" "extended_s3_stream" { + name = var.kinesis_delivery_stream_name + destination = "extended_s3" + + extended_s3_configuration { + role_arn = aws_iam_role.firehose_role.arn + bucket_arn = aws_s3_bucket.bucket.arn + } +} + +variable "s3_bucket_delivery_stream_name" { + type = string + default = "s3-camel-test-123" +} + + +resource "aws_s3_bucket" "bucket" { + bucket = var.s3_bucket_delivery_stream_name +} + +resource "aws_iam_role" "firehose_role" { + name = "firehose_test_role" + + assume_role_policy = <<EOF +{ + "Version": "2012-10-17", + "Statement": [ + { + "Action": "sts:AssumeRole", + "Principal": { + "Service": "firehose.amazonaws.com" + }, + "Effect": "Allow", + "Sid": "" + } + ] +} +EOF +} + +output "Kinesis-firehose-dist-stream" { + value = aws_kinesis_firehose_delivery_stream.extended_s3_stream.arn + description = "The Kinesis Stream ARN" +} +output "S3-Bucket" { + value = aws_s3_bucket.bucket.id + description = "The S3 Bucket" +} diff --git a/it-tests/aws/aws-kinesis-firehose/sink/timer-aws-kinesis-firehose-it-test.sh b/it-tests/aws/aws-kinesis-firehose/sink/timer-aws-kinesis-firehose-it-test.sh new file mode 100755 index 00000000..c21b8c99 --- /dev/null +++ b/it-tests/aws/aws-kinesis-firehose/sink/timer-aws-kinesis-firehose-it-test.sh @@ -0,0 +1,37 @@ +#!/bin/bash + +if [ $# -ne 1 ]; then + echo $0: usage: timer-aws-kinesis-firehose-it-test.sh camel-version + exit 1 +fi + +camel_version=$1 + +cd terraform/ +terraform init +terraform apply -auto-approve +cd ../ + +jbang run -Dcamel.jbang.version=$camel_version camel@apache/camel run timer-aws-kinesis-firehose.yaml & + +sleep 10 + +variable=`jbang run -Dcamel.jbang.version=$camel_version camel@apache/camel get | tail -n +2` +success=`echo $variable | cut -d' ' -f11` +fail=`echo $variable | cut -d' ' -f12` +if [[ $success == 5 && $fail == 0 ]] +then + mkdir -p ../../../tests/ + echo "Test Successful" > ../../../tests/timer-aws-kinesis-firehose-it-test.result ; +else + mkdir -p ../../../tests/ + echo "Test failed" > ../../../tests/timer-aws-kinesis-firehose-it-test.result ; +fi + +jbang run -Dcamel.jbang.version=$camel_version camel@apache/camel stop timer-aws-kinesis-firehose + +cd terraform/ +terraform destroy -auto-approve +cd ../ + +cat ../../../tests/timer-aws-kinesis-firehose-it-test.result diff --git a/it-tests/aws/aws-kinesis-firehose/sink/timer-aws-kinesis-firehose.yaml b/it-tests/aws/aws-kinesis-firehose/sink/timer-aws-kinesis-firehose.yaml new file mode 100644 index 00000000..288f9f2b --- /dev/null +++ b/it-tests/aws/aws-kinesis-firehose/sink/timer-aws-kinesis-firehose.yaml @@ -0,0 +1,29 @@ +## --------------------------------------------------------------------------- +## 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. +## --------------------------------------------------------------------------- + +- route: + from: + uri: "timer://foo?delay=0&fixedRate=true&period=1000&repeatCount=5" + steps: + - set-body: + constant: "test" + - to: + uri: "kamelet:aws-kinesis-firehose-sink" + parameters: + streamName: "kinesis-camel-test-123" + useDefaultCredentialsProvider: true + region: "eu-west-1"