LOG-7913: Add S3 functional tests with minIO mock#3246
LOG-7913: Add S3 functional tests with minIO mock#3246vparfonov wants to merge 1 commit intoopenshift:masterfrom
Conversation
|
@vparfonov: This pull request references LOG-7913 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the task to target the "4.8.0" version, but no target version was set. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
|
/hold |
Review Summary by QodoAdd S3 functional tests with minIO mock and AWS SDK upgrades
WalkthroughsDescription• Implement S3 functional tests using minIO containerized mock • Add port-forward mechanism for minIO service access • Support multiple compression formats (gzip, zlib, snappy, zstd) • Upgrade AWS SDK dependencies for S3 and CloudWatch compatibility Diagramflowchart LR
A["Test Framework"] -->|"AddS3Output"| B["minIO Container"]
B -->|"Port-forward 9000→19000"| C["S3 Client"]
C -->|"Create Bucket"| D["SetupS3Bucket"]
D -->|"Write Logs"| E["Vector Collector"]
E -->|"Batch & Upload"| F["S3 Objects"]
F -->|"Decompress & Parse"| G["ReadLogsFromS3"]
G -->|"JSON Array Parsing"| H["Test Assertions"]
File Changes1. test/framework/functional/framework.go
|
Code Review by Qodo
|
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: vparfonov The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
/review |
|
Persistent review updated to latest commit f8aa050 |
|
@vparfonov: This pull request references LOG-7913 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the task to target the "4.8.0" version, but no target version was set. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
|
/review |
|
Persistent review updated to latest commit 2b088ec |
|
@vparfonov: This pull request references LOG-7913 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the task to target the "4.8.0" version, but no target version was set. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
|
@vparfonov: This pull request references LOG-7913 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the task to target the "4.8.0" version, but no target version was set. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
|
/test functional-target |
|
PR-Agent: could not fine a component named |
|
/test functional-target |
|
PR-Agent: could not fine a component named |
|
/review |
|
Persistent review updated to latest commit 953a54e |
|
/hold cancel |
…orwarding utilities - Add comprehensive S3 output tests using minIO as containerized S3-compatible mock - Test application, audit, and infrastructure log types - Test 5 compression formats (none, gzip, snappy, zlib, zstd) - Support custom key-prefix routing for different log types - Implement ReadLogsFromS3 with transparent decompression support - Configure Vector S3 sink with batch timeout tuning - Create portforward.go with PortForwarder struct for managing port-forward connections - Implement setupPortForwarder for pod-level port-forwarding (Kubernetes API-based) - Implement setupServicePortForwarder for service-level port-forwarding (oc CLI) - Update S3 and CloudWatch to use modern BaseEndpoint instead of deprecated EndpointResolver - Align with current AWS SDK v2 best practices - Add minIO sidecar container to collector pod via AddS3Output - Create minio-server Kubernetes Service for stable endpoint - Use dynamic port allocation for local port-forwarding - Support configuration via internal/utils/toml utility for TOML manipulation Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
@vparfonov: all tests passed! Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
Description
Implement comprehensive functional tests for S3 output forwarding using
minIOas a containerizedS3-compatiblemock.Architecture:
minIOruns as a sidecar container in the same pod as Vector collectorminIOvia port-forwarding10svia config visitor (default300stoo slow for tests)Test Coverage:
SDK Updates:
aws-sdk-go-v2 core: v1.9.0 → v1.41.5(required for S3 support)aws-sdk-go-v2/service/s3 v1.98.0cloudwatchlogs: v1.7.0 → v1.68.0(fixes ComputePayloadHash middleware with newer core SDK)smithy-go: v1.8.0 → v1.24.2Testing:
/cc
/assign
Links