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
[Jobs] Merge Jobs Support into Master #2925
Commits on Jan 7, 2020
-
Adds protocol buffers for implementing Jobs in swarmkit. Signed-off-by: Drew Erny <drew.erny@docker.com>
Configuration menu - View commit details
-
Copy full SHA for 788e8a6 - Browse repository at this point
Copy the full SHA 788e8a6View commit details -
Add minimal Replicated Job Orchestrator and Tests
Adds orchestrators for replicated and global jobs, and the basic tests. This commit exists mostly to keep the Ginkgo in mostly its own commit. Signed-off-by: Drew Erny <drew.erny@docker.com>
Configuration menu - View commit details
-
Copy full SHA for 67ceea9 - Browse repository at this point
Copy the full SHA 67ceea9View commit details -
Add service reconcilation for replicated jobs
Adds service reconciliation logic for the replicated jobs orchestrator. This code does not function in production, and is not actually called except from the tests. Signed-off-by: Drew Erny <drew.erny@docker.com>
Configuration menu - View commit details
-
Copy full SHA for a4da9ec - Browse repository at this point
Copy the full SHA a4da9ecView commit details -
Add global job orchestrator skeleton
Expands the skeleton structure of the global jobs orchestrator. Signed-off-by: Drew Erny <drew.erny@docker.com>
Configuration menu - View commit details
-
Copy full SHA for 3b160c8 - Browse repository at this point
Copy the full SHA 3b160c8View commit details -
Refactor replicated job orchestrator and add initialization
Refactors the replicated job orchestrator to make testing simpler, and then adds initialization logic to it. Signed-off-by: Drew Erny <drew.erny@docker.com>
Configuration menu - View commit details
-
Copy full SHA for 06fabe5 - Browse repository at this point
Copy the full SHA 06fabe5View commit details -
Add store event logic to replicated jobs orchestrator
Signed-off-by: Drew Erny <drew.erny@docker.com>
Configuration menu - View commit details
-
Copy full SHA for 8140d06 - Browse repository at this point
Copy the full SHA 8140d06View commit details -
Refactor global job orchestrator
Refactors the global job orchestrator along the same lines as the replicated job orchestrator, in order to better decouple the event-driven orchestrator logic from the reconciliation logic. Signed-off-by: Drew Erny <drew.erny@docker.com>
Configuration menu - View commit details
-
Copy full SHA for e5962e7 - Browse repository at this point
Copy the full SHA e5962e7View commit details -
It became evident in the process of writing the Global Jobs orchestrator that the Orchestrators required by both Replicated and Global jobs are essentially identical. This commit merges them into one combined orchestrator, which dispatches to the appropriate Reconcilers to do the actual work. Unlike existing services, these orchestrators can be combined because the requirements of jobs are much simpler than that of services. Signed-off-by: Drew Erny <drew.erny@docker.com>
Configuration menu - View commit details
-
Copy full SHA for 0d91115 - Browse repository at this point
Copy the full SHA 0d91115View commit details -
Add controlapi support for job services
Adds support to the controlapi for creating and updating job-mode services. This still does not include correct plumbing to execute job-type services. Signed-off-by: Drew Erny <drew.erny@docker.com>
Configuration menu - View commit details
-
Copy full SHA for fb8a719 - Browse repository at this point
Copy the full SHA fb8a719View commit details -
Wire up jobs orchestrator to manager
Adds the jobs orchestrator to the swarmkit manager. Jobs orchestrator will now start and run with the manager. Signed-off-by: Drew Erny <drew.erny@docker.com>
Configuration menu - View commit details
-
Copy full SHA for b9321f7 - Browse repository at this point
Copy the full SHA b9321f7View commit details -
Add jobs orchestrator to controlapi integration tests
Adds the beginnings of the integration tests between the controlapi and the jobs orchestrator. These tests don't actually check much more than creation right now, as update handling for the jobs orchestrator is pending, but further tests will be able to leverage the groundwork here to a high degree. Signed-off-by: Drew Erny <drew.erny@docker.com>
Configuration menu - View commit details
-
Copy full SHA for 5fb683f - Browse repository at this point
Copy the full SHA 5fb683fView commit details -
Support restarting failing jobs tasks
In order to make the jobs reconcilers work correctly with the restart supervisor, they have been altered to never replace failed tasks directly Replacing failed tasks is the purview of the restart supervisor. The jobs reconcilers will only create new tasks when needed. Additionally, this alters the behavior of the replicated job reconciler with regards to slots -- each new task will get a new slot, and when the job is completed, there will be a Completed task in each slot from 0 to TotalCompletions-1. Then, makes the tweaks necessary for the Restart Supervisor to support Jobs, which are different from other services in that they deliberately have a desired state of Completed. Finally, wires up the replicated and global orchestrators to call the restart supervisor to restart tasks that have failed. Signed-off-by: Drew Erny <drew.erny@docker.com>
Configuration menu - View commit details
-
Copy full SHA for 9fec897 - Browse repository at this point
Copy the full SHA 9fec897View commit details -
Update components to support jobs
Updates manager components to support jobs, which have a desired state of Completed. Signed-off-by: Drew Erny <drew.erny@docker.com>
Configuration menu - View commit details
-
Copy full SHA for 42e7797 - Browse repository at this point
Copy the full SHA 42e7797View commit details -
Update ListServiceStatuses for Jobs
Updates the ListServiceStatuses RPC to work with jobs. Includes adding a new field to the responses showing the number of completed Tasks in a job. Signed-off-by: Drew Erny <drew.erny@docker.com>
Configuration menu - View commit details
-
Copy full SHA for 6ad2213 - Browse repository at this point
Copy the full SHA 6ad2213View commit details -
Add support for updating global jobs
Adds support for updating global jobs by adding code to shut down tasks belonging to previous job iterations. Signed-off-by: Drew Erny <drew.erny@docker.com>
Configuration menu - View commit details
-
Copy full SHA for 39596e5 - Browse repository at this point
Copy the full SHA 39596e5View commit details -
Add support for updating replicated jobs
Adds support for updating replicated jobs by adding code to shut down tasks belonging to previous job iterations. Signed-off-by: Drew Erny <drew.erny@docker.com>
Configuration menu - View commit details
-
Copy full SHA for 9959bf7 - Browse repository at this point
Copy the full SHA 9959bf7View commit details -
Add controlapi integration test for updating replicated jobs
Signed-off-by: Drew Erny <drew.erny@docker.com>
Configuration menu - View commit details
-
Copy full SHA for 17cd5b1 - Browse repository at this point
Copy the full SHA 17cd5b1View commit details -
This reverts the commits from #2899, which shut down tasks of old iterations. This is the wrong approach and the right approach will be fixed in a later commit. Signed-off-by: Drew Erny <drew.erny@docker.com>
Configuration menu - View commit details
-
Copy full SHA for f61b9f7 - Browse repository at this point
Copy the full SHA f61b9f7View commit details -
Addresses a couple of TODOs in the jobs orchestrator. Most notably, updates the reconcilers to set the DesiredState of Tasks belonging to older job iterations to Remove, which will cause them to be cleaned up and deleted. Signed-off-by: Drew Erny <drew.erny@docker.com>
Configuration menu - View commit details
-
Copy full SHA for 5367704 - Browse repository at this point
Copy the full SHA 5367704View commit details -
Add tests for jobs integration with RestartSupervisor
Signed-off-by: Drew Erny <drew.erny@docker.com>
Configuration menu - View commit details
-
Copy full SHA for 2345d92 - Browse repository at this point
Copy the full SHA 2345d92View commit details
Commits on Jan 10, 2020
-
Remove global job node creation time check
Removes code from the global job reconciler that prevented global jobs from executing on newly created nodes. This behavior probably would not have worked well in real-world use, and closes off a few use cases (like using a global job to perform some initialization on newly-created nodes). Signed-off-by: Drew Erny <derny@mirantis.com>
Configuration menu - View commit details
-
Copy full SHA for eae24f8 - Browse repository at this point
Copy the full SHA eae24f8View commit details