v0.10.0
Recommended Mesos version is 0.22.1
We tested this release against Mesos version 0.22.1. Thus, this is the recommended
Mesos version for this release.
Notes
This will be the last release that supports Java 6, since Java 6 and Java 7 have reached End of Life.
Starting with 0.11.0 we will rely on Java 8.
Overview
This version corresponds to 0.10.0-RC5.
Administratively zeroing the task launch delay
It is now possible to reset the task launch delay via the REST endpoint /v2/queue/{app_id}/delay
.
The UI displays two additional possible statuses: "Delayed" and "Waiting".
The "Delayed" status also displays a tooltip showing the remaining time until the next launch attempt.
The App page now allows the user to reset the task launch delay for a "Delayed" app, thus forcing a new immediate launch attempt.
The FrameworkId is invalidated, if the scheduler reports an error
If the scheduler reports an error, the framework id is removed from the backing persistence store.
This is important because on certain kinds of framework errors (such as exceeding the framework failover timeout),
the scheduler may never re-register with the saved FrameworkID until the leading Mesos master process is killed.
Maintain constraints while scaling down
Constraints in Marathon is a powerful mechanism.
While the constraints are maintained when scaling up, previous versions of Marathon did not do so while scaling down.
This version picks instances to kill based on defined constraints and will not violate those.
Custom prefix for automatically created environment variables
It is now possible to specify a custom prefix via the --env_vars_prefix
command line flag. This prefix will be added to the name of task's environment
variables created automatically by Marathon (e.g., PORT
, PORTS
)
Note: This prefix will not be added to variables that are already prefixed,
such as MESOS_TASK_ID
and MARATHON_APP_ID
Handle requests with missing Accept and Content-Type headers correctly
If an HTTP request is made without setting appropriate request headers, the Accept and Content-Type header
is set automatically to application/json
.
Option to restrict the number of concurrent HTTP requests
With this version of Marathon it is possible to restrict the number of concurrent HTTP requests,
that are handled concurrently in the service layer.
This enables the Marathon service to apply back pressure when receiving too many requests
and helps prevent Denial of Service attacks.
If the limit of concurrent requests is reached, a HTTP 503 Service Temporarily Unavailable is returned,
which means that this operation can be retried.
You can turn on this feature by setting the parameter --http_max_concurrent_requests
.
Serialize all concurrent change requests
In former versions of Marathon it was possible that multiple concurrent changes of the same application definition
would lead to an inconsistent state of that application. All changes of groups or application definitions now
get serialized, so the resulting state is always consistent.
Enhance the reported metrics
The metrics endpoint (/metrics
) gives valuable insight into the system behavior.
We now have meters for all service objects as well as the number applications and groups in the system.
Decouple API (un)marshalling types from internal models
With this change we can control API changes and are free to change internal models.
This will change nothing in the current API, but will help a lot while we create the v3 API.
Infrastructure
Added integration tests for all API endpoints
We now have an integration test suite, that covers all endpoints with almost all possible parameter combinations.
This test suite runs with every commit on every pull request.
This test suite is our safety net to ensure compatibility while introducing new functionality in future versions.
Code coverage reporting using coveralls
See our github page https://github.com/mesosphere/marathon or go directly to
https://coveralls.io/github/mesosphere/marathon to see our code coverage reporting.
With every Pull Request we try to make sure, this coverage will be increased.
Improved the release process of Marathon itself
Several changes are made to the sbt build file, but also to the infrastructure that is performing the release.
We now have a more reliable way of pushing distributions.
Fixed Issues
- #1710 - Too many simultaneous requests will kill Marathon
- #1709 - Concurrent changes to the same AppDefinition will lead to inconsistent state
- #1669 - Inconsistent content-type and response from REST API
- #1660 - The GUI doesn't allow creating apps with 0 instances, but it is possible through the v2 API
- #1647 - Keep the rest-api return format consistent when request headers without "Accept: application/json"
- #1397 - Kill tasks with scaling does not update group
- #1654 - Marathon 0.8.1 - API - /v2/tasks
- #555 - Constraints not satisfied when scaling down
- #650 - deployment_success/failed should contain deployment info
- #1316 - Invalidate framework ID if registration triggers an error
- #1254 - Add flag to define Marathon PORT prefix
- #1827 - Apps with multiple service ports fail to update
- #1829 - Marathon forgets value for
acceptedResourceRoles
when app is updated (including scaling) - #1647 - Keep the rest-api return format consistent when request headers without "Accept: application/json"
- #1853 - App can't be deleted because it "does not exist", although /apps still returns it
- #1924 - Launch tasks that require no disk resource
- #1927 - Improve logging of unsatisfied resource requirements
- #1931 - Flag for reviveOffers and the duration for which to reject
Changelog
Changelog from Marathon 0.9.0 to 0.10.0: v0.9.0...v0.10.0
Commits | Contributor |
---|---|
47 | Matthias Veit |
29 | Peter Kolloch |
18 | Gastón Kleiman |
14 | Gaston Kleiman |
5 | Matthias Eichstedt |
3 | Chris Darko |
3 | Cody Maloney |
3 | Connor Doyle |
2 | Lukas Loesche |
2 | Lukas Lösche |
2 | Pierluigi Cau |
1 | rfast |
1 | Arthur Barr |
1 | Christoph Neuroth |
1 | Dana Renfrow |
1 | Felix Gertz |
1 | Gastón Kleiman |
1 | Konstantin Baumann |
1 | Philip Norman |
1 | aameek |
1 | janisz |
1 | Artem Harutyunyan |
generated by git shortlog -s -n v0.9.0..v0.10.0