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

Enable deploying chrome-tests-syncer independently #4647

Merged
merged 8 commits into from
Feb 5, 2025

Conversation

ViniciustCosta
Copy link
Collaborator

@ViniciustCosta ViniciustCosta commented Jan 29, 2025

Motivation

Decouple the chrome-tests-syncer code releases from the rest of clusterfuzz, in order to enable it to be deployed independently of the clusterfuzz instances by the chrome fuzzing team .

Changes

  • Extended the butler deploy script to produce a dedicated deployment package for "--release=chrome-tests-syncer" and to produce both the prod and tests-syncer packages when releasing to prod.
  • Changed chrome-tests-syncer Dockerfile/start.sh to pull from this dedicated deployment package.
  • Moved and edited the tests-syncer code to be executed as a k8s cronjob.
  • (side effect) Updated unit test to account for deploying the chrome-tests-syncer manifest.

Tests

  • Deployed a chrome-tests-syncer release using this PR and produced the dedicated artifact (https://screenshot.googleplex.com/8W88DmYwFKPkSfZ.png).

  • Built an updated chrome-tests-syncer image that pulls from this artifact (https://screenshot.googleplex.com/8HqEvV7bnBggBPj.png).

  • Created the chrome-tests-syncer cronjob (along with PR in clusterfuzz-config: 2428107) pulling from this updated image, applied it to the GKE and it ran successfully:
    image

  • Mocked a deployment with --release=prod (by printing the command instead of actually uploading to gcs):

Screenshot 2025-02-05 at 11 48 31

Bug: b/389048599

@ViniciustCosta ViniciustCosta changed the title [WIP] Enable deploying chrome-test-syncer independently Enable deploying chrome-tests-syncer independently Feb 4, 2025
@vitorguidi
Copy link
Collaborator

vitorguidi commented Feb 4, 2025

  • Extended the butler deploy script to produce a dedicated deployment package for "--release=chrome-tests-syncer" and to produce both the prod and tests-syncer packages when releasing to prod.
  • Changed chrome-tests-syncer Dockerfile/start.sh to pull from this dedicated deployment package.
  • Moved and edited the tests-syncer code to be executed as a k8s cronjob.

Please describe the testing strategy adopted, and post evidence that the change does what it is meant to do (for instance, the manual deployment for isolated test syncer that we performed)

Copy link
Collaborator

@jonathanmetzman jonathanmetzman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM with nit

src/local/butler/package.py Show resolved Hide resolved
Copy link
Collaborator

@vitorguidi vitorguidi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@ViniciustCosta ViniciustCosta merged commit 7e3b1d3 into master Feb 5, 2025
7 checks passed
@ViniciustCosta ViniciustCosta deleted the test-syncer-k8s branch February 5, 2025 18:06
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.

3 participants