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

Multiregion Deployments (OSS integration) #8184

Merged
merged 13 commits into from
Jun 17, 2020
Merged

Multiregion Deployments (OSS integration) #8184

merged 13 commits into from
Jun 17, 2020

Conversation

tgross
Copy link
Member

@tgross tgross commented Jun 17, 2020

This changeset includes all the bits of the upcoming enterprise-only Multiregion Deployments feature that we'll need in the OSS build. All code in this PR has been previously reviewed in the private repository for enterprise.

Documentation is under #8185

tgross and others added 13 commits June 17, 2020 11:00
Initial struct definitions, jobspec parsing, validation, and conversion
between Nomad structs and API structs for multi-region deployments.
Integration points for multiregion jobs to be registered in the enterprise
version of Nomad:
* hook in `Job.Register` for enterprise to send job to peer regions
* remove monitoring from `nomad job run` and `nomad job stop` for multiregion jobs
This changeset establishes hooks in deploymentwatcher for multiregion
deployments (for the enterprise version of Nomad).
* `nextRegion` should take status parameter
* thread Deployment/Job RPCs thru `nextRegion`
* add `nextRegion` calls to `deploymentwatcher`
* use a better description for paused for peer
The `paused` state is used as an operator safety mechanism, so that they can
debug a deployment or halt one that's causing a wider failure. By using the
`paused` state as the first state of a multiregion deployment, we risked
resuming an intentionally operator-paused deployment because of activity in a
peer region.

This changeset replaces the use of the `paused` state with a `pending` state,
and provides a `Deployment.Run` internal RPC to replace the use of the
`Deployment.Pause` (resume) RPC we were using in `deploymentwatcher`.
@tgross tgross marked this pull request as ready for review June 17, 2020 15:53
Copy link
Contributor

@cgbaker cgbaker left a comment

Choose a reason for hiding this comment

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

looks good to me, pending passing test suite.

is there explicit rejection of Multiregion jobs by OSS or do they just not work?

@tgross
Copy link
Member Author

tgross commented Jun 17, 2020

is there explicit rejection of Multiregion jobs by OSS or do they just not work?

Currently it's just ignored (because we don't do license checks in the OSS code). We should probably pull that out during validation though. I'll do that under separate PR.

@tgross tgross merged commit d49eab8 into master Jun 17, 2020
@tgross tgross deleted the f-multiregion_oss branch June 17, 2020 16:09
@tgross tgross added this to the 0.12.0 milestone Jun 17, 2020
@github-actions
Copy link

github-actions bot commented Jan 3, 2023

I'm going to lock this pull request because it has been closed for 120 days ⏳. This helps our maintainers find and focus on the active contributions.
If you have found a problem that seems related to this change, please open a new issue and complete the issue template so we can capture all the details necessary to investigate further.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jan 3, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants