Skip to content

Conversation

@onewland
Copy link
Contributor

@onewland onewland commented Nov 11, 2025

When deploying #7510, we encountered a couple problems.

First was that we were checking the health of a pipeline that we deleted (snuba was removed to be replaced with snuba-rs and snuba-py). This was addressed in #7523 which made snuba-py and snuba-rs check the s4s deploys for those pipelines, respectively.

We then found, however, that checks was checking if every stage in a pipeline had executed successfully. We could force bypass this to make a deploy happen, but there was a circular dependency here where checks could only succeed once checks had succeeded. So here I've changed scripts/fetch_service_refs.py to make checks succeed as long as we reach the pipeline-complete stage of a region successfully. So the first deploy will have to manually bypass checks still but future deploys should proceed unimpeded.

In order to reduce gocd-change-deploy thrash, I'm reintroducing the original pipeline (#7510 deleted it while standing up the new ones), which I'm hoping we can just leave paused as we work out remaining kinks. But it eliminates the need to revert if we see any problems

Once we're deploying successfully on the new pipelines we can delete the files:

  • gocd/templates/pipelines/snuba.libsonnet
  • gocd/templates/bash/deploy-st.sh
  • gocd/templates/bash/deploy.sh

checks: {
elastic_profile_id: 'snuba',
environment_variables: {
PIPELINE_FIRST_STEP: 'deploy-snuba-py-s4s',
Copy link
Contributor Author

Choose a reason for hiding this comment

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

other than this line (and some renames) this is essentially a copy of snuba.libsonnet

checks: {
elastic_profile_id: 'snuba',
environment_variables: {
PIPELINE_FIRST_STEP: 'deploy-snuba-rs-s4s',
Copy link
Contributor Author

Choose a reason for hiding this comment

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

other than this line (and some renames) this is essentially a copy of snuba.libsonnet

@onewland onewland marked this pull request as ready for review November 11, 2025 15:40
@onewland onewland requested a review from a team as a code owner November 11, 2025 15:40
if "pipeline-complete" in stage_status_dict:
return stage_status_dict["pipeline-complete"] == "Passed"
else:
return all(status == "Passed" for status in stage_status_dict.values())
Copy link
Contributor

Choose a reason for hiding this comment

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

You slightly changed this to include the migrate stage in the result from before.

I think we should just keep the result of the pipeline-complete stage and call it a day.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

sounds good to me

@onewland onewland enabled auto-merge (squash) November 11, 2025 15:58
@onewland onewland merged commit d9362ee into master Nov 11, 2025
33 checks passed
@onewland onewland deleted the gocd/split-pipelines-leaving-original-update-script branch November 11, 2025 16:27
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