-
Notifications
You must be signed in to change notification settings - Fork 9.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Unable to remove aws_kinesis_firehose_delivery_stream S3 processors #11305
Comments
References: * hashicorp#11305 If a processor has previously been added to the extended S3 configuration for a Kinesis firehose delivery stream and an attempt is made to remove the processor for a subsequent apply, the stream resource currently attempts to pass in a processor with empty data. The UpdateDestination function in the AWS SDK rejects this processor as invalid per its schema and fails the apply. With the changes in this commit, the stream resource would remove empty processor elements before passing them up to the UpdateDestination call. This allows the empty processor elements to be removed successfully. Output from acceptance testing: ``` make testacc TEST=./aws TESTARGS='-run=TestAccAWSKinesisFirehoseDeliveryStream_' ... --- PASS: TestAccAWSKinesisFirehoseDeliveryStream_missingProcessingConfiguration (72.65s) --- PASS: TestAccAWSKinesisFirehoseDeliveryStream_ExtendedS3_DataFormatConversionConfiguration_OpenXJsonSerDe_Empty (84.32s) --- PASS: TestAccAWSKinesisFirehoseDeliveryStream_ExtendedS3_DataFormatConversionConfiguration_ParquetSerDe_Empty (84.82s) --- PASS: TestAccAWSKinesisFirehoseDeliveryStream_ExtendedS3_DataFormatConversionConfiguration_OrcSerDe_Empty (86.81s) --- PASS: TestAccAWSKinesisFirehoseDeliveryStream_s3WithCloudwatchLogging (92.66s) --- PASS: TestAccAWSKinesisFirehoseDeliveryStream_ExtendedS3_DataFormatConversionConfiguration_Serializer_Update (99.07s) --- PASS: TestAccAWSKinesisFirehoseDeliveryStream_basic (100.02s) --- PASS: TestAccAWSKinesisFirehoseDeliveryStream_ExtendedS3_ErrorOutputPrefix (100.22s) --- PASS: TestAccAWSKinesisFirehoseDeliveryStream_ExtendedS3_DataFormatConversionConfiguration_Deserializer_Update (101.59s) --- PASS: TestAccAWSKinesisFirehoseDeliveryStream_ExtendedS3KmsKeyArn (104.93s) --- PASS: TestAccAWSKinesisFirehoseDeliveryStream_ExtendedS3_DataFormatConversionConfiguration_HiveJsonSerDe_Empty (109.56s) --- PASS: TestAccAWSKinesisFirehoseDeliveryStream_s3basicWithTags (112.94s) --- PASS: TestAccAWSKinesisFirehoseDeliveryStream_ExtendedS3_ExternalUpdate (114.35s) --- PASS: TestAccAWSKinesisFirehoseDeliveryStream_s3KinesisStreamSource (117.80s) --- PASS: TestAccAWSKinesisFirehoseDeliveryStream_SplunkConfigUpdates (125.21s) --- PASS: TestAccAWSKinesisFirehoseDeliveryStream_ExtendedS3Updates (141.99s) --- PASS: TestAccAWSKinesisFirehoseDeliveryStream_s3basic (77.82s) --- PASS: TestAccAWSKinesisFirehoseDeliveryStream_ExtendedS3basic (88.79s) --- PASS: TestAccAWSKinesisFirehoseDeliveryStream_s3ConfigUpdates (175.05s) --- PASS: TestAccAWSKinesisFirehoseDeliveryStream_s3basicWithSSE (199.39s) --- PASS: TestAccAWSKinesisFirehoseDeliveryStream_ExtendedS3_DataFormatConversionConfiguration_Enabled (124.94s) --- PASS: TestAccAWSKinesisFirehoseDeliveryStream_RedshiftConfigUpdates (566.48s) --- PASS: TestAccAWSKinesisFirehoseDeliveryStream_ElasticsearchConfigUpdates (706.62s) ```
…ng (#11649) References: * #11305 If a processor has previously been added to the extended S3 configuration for a Kinesis firehose delivery stream and an attempt is made to remove the processor for a subsequent apply, the stream resource currently attempts to pass in a processor with empty data. The UpdateDestination function in the AWS SDK rejects this processor as invalid per its schema and fails the apply. With the changes in this commit, the stream resource would remove empty processor elements before passing them up to the UpdateDestination call. This allows the empty processor elements to be removed successfully. Output from acceptance testing: ``` make testacc TEST=./aws TESTARGS='-run=TestAccAWSKinesisFirehoseDeliveryStream_' ... --- PASS: TestAccAWSKinesisFirehoseDeliveryStream_missingProcessingConfiguration (72.65s) --- PASS: TestAccAWSKinesisFirehoseDeliveryStream_ExtendedS3_DataFormatConversionConfiguration_OpenXJsonSerDe_Empty (84.32s) --- PASS: TestAccAWSKinesisFirehoseDeliveryStream_ExtendedS3_DataFormatConversionConfiguration_ParquetSerDe_Empty (84.82s) --- PASS: TestAccAWSKinesisFirehoseDeliveryStream_ExtendedS3_DataFormatConversionConfiguration_OrcSerDe_Empty (86.81s) --- PASS: TestAccAWSKinesisFirehoseDeliveryStream_s3WithCloudwatchLogging (92.66s) --- PASS: TestAccAWSKinesisFirehoseDeliveryStream_ExtendedS3_DataFormatConversionConfiguration_Serializer_Update (99.07s) --- PASS: TestAccAWSKinesisFirehoseDeliveryStream_basic (100.02s) --- PASS: TestAccAWSKinesisFirehoseDeliveryStream_ExtendedS3_ErrorOutputPrefix (100.22s) --- PASS: TestAccAWSKinesisFirehoseDeliveryStream_ExtendedS3_DataFormatConversionConfiguration_Deserializer_Update (101.59s) --- PASS: TestAccAWSKinesisFirehoseDeliveryStream_ExtendedS3KmsKeyArn (104.93s) --- PASS: TestAccAWSKinesisFirehoseDeliveryStream_ExtendedS3_DataFormatConversionConfiguration_HiveJsonSerDe_Empty (109.56s) --- PASS: TestAccAWSKinesisFirehoseDeliveryStream_s3basicWithTags (112.94s) --- PASS: TestAccAWSKinesisFirehoseDeliveryStream_ExtendedS3_ExternalUpdate (114.35s) --- PASS: TestAccAWSKinesisFirehoseDeliveryStream_s3KinesisStreamSource (117.80s) --- PASS: TestAccAWSKinesisFirehoseDeliveryStream_SplunkConfigUpdates (125.21s) --- PASS: TestAccAWSKinesisFirehoseDeliveryStream_ExtendedS3Updates (141.99s) --- PASS: TestAccAWSKinesisFirehoseDeliveryStream_s3basic (77.82s) --- PASS: TestAccAWSKinesisFirehoseDeliveryStream_ExtendedS3basic (88.79s) --- PASS: TestAccAWSKinesisFirehoseDeliveryStream_s3ConfigUpdates (175.05s) --- PASS: TestAccAWSKinesisFirehoseDeliveryStream_s3basicWithSSE (199.39s) --- PASS: TestAccAWSKinesisFirehoseDeliveryStream_ExtendedS3_DataFormatConversionConfiguration_Enabled (124.94s) --- PASS: TestAccAWSKinesisFirehoseDeliveryStream_RedshiftConfigUpdates (566.48s) --- PASS: TestAccAWSKinesisFirehoseDeliveryStream_ElasticsearchConfigUpdates (706.62s) ```
The fix for this has been merged and will release with version 2.48.0 of the Terraform AWS Provider, later today. Thanks to @camlow325 for the implementation. 👍 |
This has been released in version 2.48.0 of the Terraform AWS provider. Please see the Terraform documentation on provider versioning or reach out if you need any assistance upgrading. For further feature requests or bug reports with this functionality, please create a new GitHub issue following the template for triage. Thanks! |
I'm going to lock this issue because it has been closed for 30 days ⏳. This helps our maintainers find and focus on the active issues. If you feel this issue should be reopened, we encourage creating a new issue linking back to this one for added context. Thanks! |
Community Note
Terraform Version
Affected Resource(s)
Terraform Configuration Files
Debug Output
Panic Output
Expected Behavior
When a
terraform apply
is attempted with noprocessors
defined in theextended_s3_configuration.processing_configuration
for theaws_kinesis_firehose_delivery_stream
resource, previously appliedprocessors
should be removed and the apply should succeed.Actual Behavior
The
terraform apply
with noprocessors
defined fails with the following error:Repeated
terraform apply
operations produce the same error. While in the error state, the Terraform state file contains the following content for theprocessing_configuration
block, which appears to be invalid per the resource schema:The
processors
can be cleared by doing the following AWS CLI command:The
test.json
file has the following content:Once the
processors
have been cleared via the AWS CLI command, subsequentterraform apply
commands with theprocessors
still omitted from the configuration are successful.Steps to Reproduce
Ensure that the
extended_s3_configuration.processing_configuration
block above is defined as follows:terraform apply
The apply should be successful.
Modify the
extended_s3_configuration.processing_configuration
block above to the following:terraform apply
The apply should be successful.
Modify the
extended_s3_configuration.processing_configuration
block to have the same content as had been set in the first step:terraform apply
This
terraform apply
encounters the error described in theActual Behavior
section above.Important Factoids
References
The text was updated successfully, but these errors were encountered: