Skip to content
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

Update benchmarks and fuzz targets bucket periodically in GKE #944

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

Ekam219
Copy link

@Ekam219 Ekam219 commented Mar 31, 2025

Hi DonggeLiu,

Thanks a lot for your guidance on this! I’ve implemented the changes to automate syncing OSS-Fuzz targets and benchmarks to GCS. For now, I’ve created a draft PR for your review. Please let me know if you’d like any changes or if you’d like to dive deeper into any part of the implementation! #66

Summary of Updates
🔹 Data Source Implementation
Added a new script: tools/gcs_sync.py

Fetches human-written fuzz targets and function signatures using target_collector.py and introspector.py

Excludes LLVMFuzzerTestOneInput

Stores timestamped JSON files in the oss-fuzz-gen-targets GCS bucket under project-specific directories

🔹 Scheduling & Automation
Created k8s/gcs-sync-cron.yaml to define a Kubernetes CronJob

Default schedule: Runs daily at 3 AM UTC (adjustable via Cron syntax)

Uses a dedicated service account (oss-fuzz-sync-sa) with minimal permissions (storage.objectAdmin) for security

🔹 GKE Integration & Docker Image
Built a lightweight Docker image (Dockerfile.sync)

Includes only essential dependencies: Python, GCS SDK, and the sync script

Optimized image size (~300MB) to prevent unnecessary bloat

Automated build & deployment via GitHub Actions

🔹 Cluster Access & Workflow
Everything is managed via YAML files and GitHub Actions

No direct GKE access required, ensuring a more secure and auditable system

Let me know if you have any feedback! 🚀
Cheers,
Ekamjot

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant