Releases: d2iq-archive/marathon
v1.3.3
Changes from 1.3.2 to 1.3.3
Recommended Mesos version is 1.0.1
Fixed Issues:
- Fix an exception when reporting metrics on non-leader marathon
v1.3.2
Changes from 1.3.1 to 1.3.2
Fixed Issues:
- Upgrade marathon ui to 1.1.5
v1.3.1
Changes from 1.3.0 to 1.3.1
Fixed Issues:
- Fix kill service behavior by retrying forever
- Introduce UnknownTaskTerminatedEvent when a task is terminated and unknown.
- Add support for sentry.io by passing
--sentry <url>
and--sentry_tags tag1:value1,...
- Set a default exception handler
- Log error if invalid protobufs were in Zookeeper.
- Improve error message in start script if JAR is not found.
- Wait for tasks to be expunged
- Allow mesos container to run without cmd and args
- Fixes #4378 Replace $ with . in metric name
- Fixes #3957 Load previously stored health status when becoming leader.
- Ensure no new connections are accepted prior to closing out handlers.
- Document unit of disk space
- Fix dead link in native-docker.md
- Enhance docs for correct mesos credential usage.
- Add support for integration tests in velocity.
- Fixes #4202 - Run tests in parallel and disable a bunch of TaskKillServiceActorTests
due to instability. - Fix AuthorizedZooKeeperTest to not leak the client
- Call an optional start-book script from /bin/start
- Fixes #DCOS-9936 - Fix an occasional NPE in DeploymentActor
- Fixes #4269 - AppUpdate.empty was not persisting existing .upgradeStrategy or .residency
so that app creation via PUT would override user entries with defaults. - Fixes #4185 - Add documenting/protecting tests as well as a protecting test for .container
v1.3.0
Changes from 1.1.0 to 1.3.0
Recommended Mesos version is 1.0.0
Breaking Changes
You need Mesos 1.0.0 or higher
Starting with Marathon 1.3.0, Mesos 1.0.0 or later is required.
New leader election library
The leader election code has been greatly improved and is based on Curator,a well-known, well-tested library. The new leader election functionality is now more robust.
Caution: the new leader election library is not compatible with Marathon versions prior to 1.3.0
To upgrade to this version, stop all older Marathon instances before the new version starts.
Otherwise, there is a risk of more than one leading master.
Framework authentication command line flags
Prior versions of Marathon have tried to authenticate whenever a principal has been provided via the command line.
Framework authentication is now explicit. There is a command line toggle option for authentication: --mesos_authentication
.
This toggle is disabled by default. You must now supply this flag to use framework authentication.
Changed default values for TASK_LOST GC timeout
If a task is declared lost in Mesos, but the reason indicates it might come back, Marathon waits for the task to come back for a certain amount of time.
To configure the behavior you can use --task_lost_expunge_gc
, --task_lost_expunge_initial_delay
, --task_lost_expunge_interval
.
Until version 1.3 Marathon has handled TASK_LOST very conservatively: it waits for 24 hours for every task to come back.
This version reduces the timeout to 75 seconds (task_lost_expunge_gc), while checking every 30 seconds (task_lost_expunge_interval).
Overview
Universal Containerizer
Starting with version 1.3.0, Marathon supports docker container images without having the Docker Containerizer depend on a Docker Engine. Instead the Mesos containerizer with native AppC support added in Apache Mesos version 1.0 (released July 2016) directly uses native OS features to configure and start Docker containers and to provide isolation.
TASK_LOST behavior
If Mesos agents get detached from the Mesos master, all tasks are assumed LOST.
The reaction of Marathon in the past was to kill LOST tasks. Under certain configurations, however, those agents were able to rejoin the cluster, so LOST was not a terminal state.
In this version, Marathon will wait until a LOST task is assumed dead. This amount of time is configurable. The default timeout is 75 seconds. LOST tasks after that timeout get killed by Marathon.
This change was so important that we back ported this functionality to prior versions of Marathon.
Task Kill Grace Period
Every application can now define a kill grace period.
When killing a task, the agent will wait in a best-effort manner for the grace period specified before forcibly destroying the task.
The task must not assume that it will always be allotted the full grace period, as the agent may decide to allot a shorter period and failures/forcible terminations may occur.
MAX_PER constraint
Applications in Marathon can now be constrained by MAX_PER operators.
It can be used, for example, to limit tasks across racks or data centers.
Virtual heartbeat monitor
Previous versions of Marathon did not recognize when it had been detached from Mesos master during network partitions.
The virtual heart beat will make sure that Marathon recognizes this situation and abdicates.
Authorization to system endpoints
Marathon already has authorization hooks for AppDefinition and Group changes.
We added authorization hooks for system endpoints: /v2/leader
, /v2/info
, /v2/events
, /v2/eventSubscriptions
.
Support for secrets API
It is now possible to use secrets in your AppDefinition.
Secrets are defined as a first-class entity and are used inside environment variables.
Please note: there is no native Mesos support for secrets at the moment.
We have defined a plugin interface to handle secrets.
You need a plugin in order to use this feature effectively.
Support for Nvidia GPU
It is now possible to use gpus
as Nvidia GPU resource required in your AppDefinition.
gpus
is defined as a first-class entity and can be supported by Mesos containerizer when
--enable_features gpu_resources
flag is set in Marathon.
Please note: this feature is valid only when Mesos is compiled with Nvidia GPU support.
Support all attribute types with constraints
Non-text type attributes (such as scalar or range) are now supported.
ZooKeeper digest authentication support
The ZK client now supports ZK authentication and ACLs.
Support for virtual networking for docker containers.
Added support for Docker USER
networking.
CNI networking support
Added the optional field ipAddress.Name
, which can be used to start a task using CNI networking.
Enforce the uniqueness of service ports
Marathon will now ensure for newly created or updated applications, that the services ports are not used by another application.
Caution: this change might lead to Marathon rejecting app definitions that used to be accepted by previous versions.
Performance improvements
- Fixes #4095 - Used Map instead of Set to store apps in Group. (#4096)
- Improve servicePort validation performance. (#4115)
- Made
dependencyGraph
only be called once perGroup
instance. (#4116) - Fixes #3991 - Use suppressOffers (#3992)
Fixed issues
- Fixed lost tasks garbage collection (#4203)
- Fix container changes on app update. (#4185)
- #3795 - Added GPU support for Marathon API (#4112)
- #3972 - network/cni support (#3974)
- #4129 - TaskOpProcessorImplTest is flaky (#4148)
- #4093 - Refactor MigrationTo1_2Test using async/wait (#4128)
- #4095 - Used Map instead of Set to store apps in Group. (#4096)
- #4085 - Stopping all running deployments instead of cancelling (#4086)
- #4071 - Service Port validations are not consistently enforced (#4077)
- #3991 - Use suppressOffers (#3992)
- #3515 - Create MAX_PER constraint. (#3989)
- #3515 - Update AppDefinition.json schema (#3993)
- #3970 - Validate constraints
- #3926 - Create PORT_NAME environment variable when we defined portDefinitions with name (#3982)
- #3981 and #3963 - Allow health-checks to be performed directly against specified ports
- #3977 - Add jenkins shell script for Velocity Integration
- #3970 - Improve docs for LIKE/UNLIKE
- #3851 - Allow dynamically reserved resources for normal task matching (#3855)
- #3848 - Size check for deployments (#3852)
- #3843 - Fixing the upgradeStrategy/residency defaults (#3846)
- #3291 - Event subscriptions validation (#3787)
- #3261 - http_event_request_timeout set the HTTP timeout (#3827)
- #3813 - handling TASK_KILLING status updates (#3829)
- #3694 - enabling chaos gzip handling. - use chaos 0.8.6 with gzip handling - add http_compression flag - bump version of scallop to 1.0 - deprecate asset_path property
- #3806 - Do not silently fail on reservations (#3808)
- #3472 - Remove MarathonTask from most code (#3778)
- #3723 - Fix validation of duplicate volume names (#3737)
- #3505 - Adding documentation for ReadinessChecks (#3711)
- #3648 - LaunchQueue: Do not defer TaskChanged (#3721)
List of Contributors
Commits | Contributor |
---|---|
47 | Matthias Veit |
37 | Gastón Kleiman |
16 | Matthias Eichstedt |
16 | Jason Gilanfarr |
14 | Johannes Unterstein |
13 | James DeFelice |
13 | Suzanne Scala |
12 | Peter Kolloch |
11 | sascala |
7 | Dr. Stefan Schimanski |
5 | Michael Park |
3 | jmlvanre |
3 | Cuauhtemoc(Tito) Sandoval |
3 | Sunil Shah |
3 | Karsten Jeschkies |
3 | Pierluigi Cau |
3 | Nathan Murthy |
3 | janisz |
2 | Aaron Bell |
2 | Bernd Mathiske |
2 | John Garcia |
2 | Ken Sipe |
2 | Micah Hausler |
2 | Tim Harper |
2 | Tito Sandoval |
1 | Mathieu Chataigner |
1 | Kapil Arya |
1 | oilbeater |
1 | Joerg Schad |
1 | Michał Łowicki |
1 | Joel Hamill |
1 | Jan Ulferts |
1 | Jan Schlicht |
1 | Ramona Misaila |
1 | Ricardo Hermida Ruiz |
1 | Saulius Valatka |
1 | Florian Leibert |
1 | Brenden Matthews |
1 | Aaron Wood |
1 | vixns |
1 | Tomasz Janiszewski |
1 | Tomasz Mosiej |
1 | Yubo Li |
1 | annaken |
1 | Balthazar Rouberol |
1 | Alexander Golonzovsky |
1 | karsten |
1 | Lukas Lösche |
1 | Mateusz Gajewski |
1 | Lukas Loesche |
git shortlog -s -n v1.1.0..v1.3.0
Downloads
Tarball:
http://downloads.mesosphere.com/marathon/v1.3.0/marathon-1.3.0.tgz
SHA:
http://downloads.mesosphere.com/marathon/v1.3.0/marathon-1.3.0.tgz.sha256
Docker:
https://registry.hub.docker.com/u/mesosphere/marathon with tag v1.3.0
Packages are also available via the Mesosphere repositories.
See: https://mesosphere.com/blog/2014/07/17/mesosphere-package-repositories/
v0.15.6
v0.14.3
v1.1.2
v0.15.5
v0.15.4
Bugfix Release
Fixed Bugs:
- Fixes #3402 - Fix race conditions in HttpEventActor
- Fixes #3377 Remove the FrameworkId in case of a specific error message from Mesos.
- Fixes #3924 by handling TASK_LOST messages with a garbage collection timeout. The lost task is killed after a configurable timeout.
In order to tweak the task lost behavior, you can use these new command line flags:
--task_lost_expunge_gc
(Optional. Default: 24 hours):
This is the length of time in milliseconds, until a lost task is garbage collected and expunged from the task tracker and task repository.--task_lost_expunge_initial_delay
(Optional. Default: 5 minutes):
This is the length of time, in milliseconds, before Marathon begins to periodically perform task expunge gc operations--task_lost_expunge_interval
(Optional. Default: 1 hour):
This is the length of time in milliseconds, for lost task gc operations.
v1.1.1
Bugfix Release:
Fixed Bugs:
- Fix race condition in which a health check can not be started as part of a deployment.