# Speed Test ## Goals: - Allows users to specify the S3 bucket, AWS region, and file size for testing. - Provides the results (elapsed time and speed) in the custom resource’s status field. ## Requirments: - Define a custom resource S3UploadSpeedTest to represent a test for uploading a file to an S3 bucket. - The CRD will allow users to specify: - S3 bucket name - AWS region - File size for the test - (Optional) AWS profile for authentication - The status of the CR will be updated with: - Elapsed time for the upload. - Upload speed (in MB/s). - Upload status (Success or Failure). ## Workflow - User creates the CR and supplies the spec fields - Controller triggers upload - A test File is uploaded to S3 - Controller Calculates upload speed - Status update of CRD reflects the time and speed ## Sample CR ```yaml apiVersion: oadp.openshift.io/v1 kind: S3UploadSpeedTest metadata: name: test-upload-speed spec: # This is just a sample CR # Most likely we will pull in the whole BSL spec here and use whatever we need bucketName: "my-test-bucket" region: "us-east-1" fileSizeMB: 100 status: elapsedTime: 5 uploadSpeed: 20 uploadStatus: "Success" ``` ## Wes's Alternative CR ```yaml= apiVersion: oadp.openshift.io/v1 kind: S3UploadSpeedTest metadata: name: test-upload-speed spec: # upload folder should be static a reserved name backupstoragelocation: default [user provided name] fileSize: 100Mib [kb,mib,gib,tb] status: elapsedTime: 5 transferSpeed: 20[kb,mib,gib,tb]/s uploadStatus: "Success" ``` ## potential enhancements * run on a specified node * run on all nodes *