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

[Conductor] Address tagging and pushing logic #123273

Open
itsjustkevin opened this issue Mar 22, 2023 · 7 comments
Open

[Conductor] Address tagging and pushing logic #123273

itsjustkevin opened this issue Mar 22, 2023 · 7 comments
Assignees
Labels
infra: security Security-related infra issues P2 Important issues not at the top of the work list team-release Owned by Release team triaged-release Triaged by Release team

Comments

@itsjustkevin
Copy link
Contributor

With tagging and pushing now handled by a recipe that is behind Multi-party approval, we may want to consider a few approaches.

  1. Remove the logic from conductor.
  2. Hide tagging and pushing behind their own flags.
  3. Leave as is.

We may want to keep the logic around for "Break glass in case of emergency" situations.

Manually tagging and pushing to the release branch is an error prone process that could introduce extra risk.

@itsjustkevin itsjustkevin self-assigned this Mar 22, 2023
@itsjustkevin
Copy link
Contributor Author

CC: @godofredoc @CaseyHillers @sealesj

@itsjustkevin itsjustkevin added the team-release Owned by Release team label Mar 22, 2023
@sealesj
Copy link
Contributor

sealesj commented Mar 22, 2023

I like the idea of keeping the logic for emergency situations, but since the release workflow should always require multi-party approval if we are hoping to get SLSA verified on flutter/flutter, I wonder if we will have to remove the logic from Conductor in order to satisfy that requirement. @godofredoc what do you think?

@itsjustkevin
Copy link
Contributor Author

Interesting perspective here that I did not consider. In the case that our recipes fail catastrophically, are we completely blocked from releasing if we want to maintain our SLSA level?

@godofredoc
Copy link
Contributor

I'll recommend 2) hide the functionality with a flag to avoid as much as possible human errors.

@itsjustkevin yes, after validating the process with multiple releases we are removing individuals access to push to beta | release.

Once we're ready for SLSA L3 the release process will need to generate provenance that can be validated by the public.

Ideally the process will be:

  • I'm a new user downloading release bundles - I run SLSA validator on the bundles to ensure it's valid, trusted and not compromised before installing.
  • I'm an existing user running upgrade on beta | stable - the flutter tool validates the provenance of the current release and the engine artifacts before extracting them.
  • The flutter tool has a SLSA compliant mode the ensures the current checkout is from beta | stable with all the artifacts provenance validated.
  • The flutter tool generates provenance for flutter applications

A few of these items will happen after the flutter product gets to SLSA L2 compliance.

@CaseyHillers
Copy link
Contributor

From a turn down perspective, we can continue to use the toolproxy approach for pushing releases. If we ship the next stable without issues, removing the tag + push logic from conductor SGTM.

@itsjustkevin
Copy link
Contributor Author

itsjustkevin commented Mar 22, 2023

From the feedback here it seems like the way to go while keeping with SLSA compliance is to remove the tag and push logic after the next stable release.

@itsjustkevin itsjustkevin changed the title [Conductor] Remove tagging and pushing logic [Conductor] Address tagging and pushing logic Mar 23, 2023
@XilaiZhang XilaiZhang added P2 Important issues not at the top of the work list infra: security Security-related infra issues labels Apr 26, 2023
@XilaiZhang
Copy link
Contributor

the remaining step is to delete the tagging and pushing logic in conductor

@XilaiZhang XilaiZhang added the triaged-release Triaged by Release team label Aug 23, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
infra: security Security-related infra issues P2 Important issues not at the top of the work list team-release Owned by Release team triaged-release Triaged by Release team
Projects
None yet
Development

No branches or pull requests

5 participants