Skip to content
This repository has been archived by the owner on Oct 23, 2024. It is now read-only.

Releases: d2iq-archive/marathon

v1.1.0

14 Apr 15:26
Compare
Choose a tag to compare

Changes from 1.0.0 to 1.1.0

Recommended Mesos version is 0.28.0

Overview

Readiness Checks for applications

Marathon already has the concept of health checks, which periodically monitor the health of an application.
During deployments and runtime configuration updates, however, you might want a temporary monitor that waits for your application to be ready. A temporary monitor can be useful for cache-warming, JIT warming, or a migration. Marathon offers a readiness check for these situations.

Readiness checks are performed only during deployment time after a task has been launched. The deployment will wait for the readiness check to succeed, before the deployment continues. For easy integration with other tools, the result of the readiness checks is available via the deployments endpoint or the app/group listing.
We are keen to know what you think about this feature.

Support for external volumes (experimental)

Marathon applications normally lose their state when they terminate and are relaunched.
In some contexts, for instance, if your application uses MySQL, you’ll want your application to preserve its state.
You can use an external storage service, such as Amazon's Elastic Block Store (EBS), to create a persistent volume that follows your application instance.Using an external storage service allows your apps to be more fault-tolerant.
If a host fails, Marathon reschedules your app on another host, along with its associated data, without user intervention.

Please Note that you have to setup your Mesos cluster correctly in order to use this feature.

Local Volumes

In prior versions Marathon had to authenticate with Mesos in order to use local volumes.
While this is still possible, we removed this prerequisite.
Using this version it is enough to set a framework principal without providing credentials.

Fixed issues

  • #3092 - Delayed applications can appear to be running
  • #3369 - Constraint validation message
  • #3477 - Improve ForceExpunge and restart logic
  • #3519 - The default Docker network should be host
  • #3552 - Editing an App: Switching between JSON and normal Editor produces a broken UX
  • #3564 - Add link to Docker section for Ports
  • #3574 - ResourceMatching and Constraints by not considering the volumeMatch's Reserved task when inspecting constraints
  • #3579 - Resident Tasks: Flaky test: restart
  • #3587 - Not specifying "network" config causes mesos to thrash
  • #3597 - Upgrading applications with persistent storage
  • #3612 - Marathon should validate that port names contain only letters and numbers
  • #3614 - Don't allow persistent container paths containing slashes
  • #3624 - Constraints are not working for updating. Respect constraints for same version.
  • #3646 - Liquid Exception in docs
  • #3652 - Error paths are mapped incorrectly
  • #3654 - PortMapping labels are not being set
  • #3655 - Apps with no volumes reported as stateful
  • #3659 - JSON editor help button does not work in IE11
  • #3663 - Apps created from inside a group have a double forward-slash in their ID
  • #3671 - Scrolling issue with create modal
  • Fixes #3648 - LaunchQueue: Do not defer TaskChanged
  • Fixes #3723 - Fix validation of duplicate volume names (#3737)
  • Fixes #3758 - Fix offersWantedSubjects
  • Fixes #3658 - Allow Kill & Wipe for resident tasks
  • Fixes #3719 - Tooltip message for external volumes is wrong
  • Fixes #3724 - Don't assume external volumes status as attached by default
  • Fixes #3657 - Suspended resident tasks should have a different status
  • Fixes #3693 - Remove unwanted sidebar filter for scheduler upgrades
  • Change - Introduce feature_flag external_volumes.
  • Change - UI Introduce support for External Volumes based on feature flag
  • Change - Log unknown task.
  • Change - Add original CandidateImpl.java
  • Change - Use life-time group watch

List of Contributors

Commits Contributor
35 Matthias Veit
20 Gastón Kleiman
17 Peter Kolloch
15 Matthias Eichstedt
8 Suzanne Scala
4 Aaron Bell
2 Joerg Schad
2 Tomasz Janiszewski
3 Alexander Weber
2 Tim Harper
2 Sakthipriyan Vairamani
1 Lukas Loesche
1 Orlando Hohmeier
1 James DeFelice
1 Philip Lombardi

git shortlog -s -n v1.0.0-RC1..v1.1.0-RC1

Downloads

Tarball:
http://downloads.mesosphere.com/marathon/v1.1.0-RC1/marathon-1.1.0-RC1.tgz

SHA:
http://downloads.mesosphere.com/marathon/v1.1.0-RC1/marathon-1.1.0-RC1.tgz.sha256

Docker:
https://registry.hub.docker.com/u/mesosphere/marathon with tag v1.1.0-RC1

Packages are also available via the Mesosphere repositories.
See: https://mesosphere.com/blog/2014/07/17/mesosphere-package-repositories/

v1.1.0-RC2

13 Apr 17:30
Compare
Choose a tag to compare
v1.1.0-RC2 Pre-release
Pre-release

Changes

We introduced a feature flag for external volumes. Enable this feature, if the cluster has support for external volumes.

Fixes in that release

Fixes #3648 - LaunchQueue: Do not defer TaskChanged
Fixes #3723 - Fix validation of duplicate volume names (#3737)
Fixes #3758 - Fix offersWantedSubjects
Fixes #3658 - Allow Kill & Wipe for resident tasks
Fixes #3719 - Tooltip message for external volumes is wrong
Fixes #3724 - Don't assume external volumes status as attached by default
Fixes #3657 - Suspended resident tasks should have a different status
Fixes #3693 - Remove unwanted sidebar filter for scheduler upgrades
Change - Introduce feature_flag external_volumes.
Change - UI Introduce support for External Volumes based on feature flag
Change - Log unknown task.
Change - Add original CandidateImpl.java
Change - Use life-time group watch

v1.1.0-RC1

08 Apr 13:07
Compare
Choose a tag to compare
v1.1.0-RC1 Pre-release
Pre-release

Changes from 1.0.0 to 1.1.0

Recommended Mesos version is 0.28.0

Overview

Readiness Checks for applications

Marathon already has the concept of health checks, which periodically monitor the health of an application.
During deployments and runtime configuration updates, however, you might want a temporary monitor that waits for your application to be ready. A temporary monitor can be useful for cache-warming, JIT warming, or a migration. Marathon offers a readiness check for these situations.

Readiness checks are performed only during deployment time after a task has been launched. The deployment will wait for the readiness check to succeed, before the deployment continues. For easy integration with other tools, the result of the readiness checks is available via the deployments endpoint or the app/group listing.
We are keen to know what you think about this feature.

Support for external volumes (experimental)

Marathon applications normally lose their state when they terminate and are relaunched.
In some contexts, for instance, if your application uses MySQL, you’ll want your application to preserve its state.
You can use an external storage service, such as Amazon's Elastic Block Store (EBS), to create a persistent volume that follows your application instance.Using an external storage service allows your apps to be more fault-tolerant.
If a host fails, Marathon reschedules your app on another host, along with its associated data, without user intervention.

Please Note that you have to setup your Mesos cluster correctly in order to use this feature.

Local Volumes

In prior versions Marathon had to authenticate with Mesos in order to use local volumes.
While this is still possible, we removed this prerequisite.
Using this version it is enough to set a framework principal without providing credentials.

Fixed issues

  • #3092 - Delayed applications can appear to be running
  • #3369 - Constraint validation message
  • #3477 - Improve ForceExpunge and restart logic
  • #3519 - The default Docker network should be host
  • #3552 - Editing an App: Switching between JSON and normal Editor produces a broken UX
  • #3564 - Add link to Docker section for Ports
  • #3574 - ResourceMatching and Constraints by not considering the volumeMatch's Reserved task when inspecting constraints
  • #3579 - Resident Tasks: Flaky test: restart
  • #3587 - Not specifying "network" config causes mesos to thrash
  • #3597 - Upgrading applications with persistent storage
  • #3612 - Marathon should validate that port names contain only letters and numbers
  • #3614 - Don't allow persistent container paths containing slashes
  • #3624 - Constraints are not working for updating. Respect constraints for same version.
  • #3646 - Liquid Exception in docs
  • #3652 - Error paths are mapped incorrectly
  • #3654 - PortMapping labels are not being set
  • #3655 - Apps with no volumes reported as stateful
  • #3659 - JSON editor help button does not work in IE11
  • #3663 - Apps created from inside a group have a double forward-slash in their ID
  • #3671 - Scrolling issue with create modal

List of Contributors

Commits Contributor
35 Matthias Veit
20 Gastón Kleiman
17 Peter Kolloch
15 Matthias Eichstedt
8 Suzanne Scala
4 Aaron Bell
2 Joerg Schad
2 Tomasz Janiszewski
3 Alexander Weber
2 Tim Harper
2 Sakthipriyan Vairamani
1 Lukas Loesche
1 Orlando Hohmeier
1 James DeFelice
1 Philip Lombardi

git shortlog -s -n v1.0.0-RC1..v1.1.0-RC1

Downloads

Tarball:
http://downloads.mesosphere.com/marathon/v1.1.0-RC1/marathon-1.1.0-RC1.tgz

SHA:
http://downloads.mesosphere.com/marathon/v1.1.0-RC1/marathon-1.1.0-RC1.tgz.sha256

Docker:
https://registry.hub.docker.com/u/mesosphere/marathon with tag v1.1.0-RC1

Packages are also available via the Mesosphere repositories.
See: https://mesosphere.com/blog/2014/07/17/mesosphere-package-repositories/

v1.0.0-RC1

23 Mar 20:31
Compare
Choose a tag to compare
v1.0.0-RC1 Pre-release
Pre-release

Changes from 0.15.3 to 1.0.0

Recommended Mesos version is 0.28.0

Breaking Changes

New default settings for Task Launches

Marathon has a lot of settings to adjust. Our goal is, to have sensible defaults for small and medium size clusters.
We realized, that some default values are not sufficient in the field and changed them:

  • --launch_tokens has changed to 100 (was 1000)
  • --max_tasks_per_offer has changed to 5 (was 100)
  • --reconciliation_interval has changed to 600000 (=10 minutes) (was 300000 (=5 minutes))

Updated Auth plugin interface

The Authentication and Authorization plugin interface was redesigned in order to support more sophisticated plugins.

Overview

Support for Persistent Storage

You can now launch tasks that use persistent volumes by specifying volumes either via the UI or the REST API. Marathon will reserve all required resources on a matching agent, and subsequently launch a task on that same agent if needed. Data within the volume will be retained even after relaunching the associated task. This release provides basic functionality which we plan to extend in the future, so use it at your own risk.

Check it out and give us feedback!

See the feature documentation for details and configuration examples.

Support for ports metadata

The v2 REST API was extended to support additional ports metadata (protocol, name, and labels) through the
portDefinition application field. Marathon will pass this new information to Mesos, who will in turn make it
available for service discovery purposes.

Note: the portDefinitions array deprecates the ports array.

Support for HTTP based plugin extensions

Plugins can now implement HTTP endpoints.

Added a leaderDuration metric

The metrics include now a gauge that measures the time elapsed since the last leader election happened. This is helpful to diagnose stability problems and how often leader election happens.

Better error messages

API error messages are now more consistent and easier to understand for both humans and computers.

Lots of documentation updates

Improved Task Kill behavior in deployments by performing kills in batches

When stopping/restarting an application, Marathon will now perform the kills in batches, in order to avoid overwhelming
Mesos. The batch size and frequency can be controlled via internal configuration parameters.

Support the TASK_KILLING state available in Mesos 0.28

It is possible to make Marathon let Mesos use the TASK_KILLING state introduced in Mesos 0.28 using the
--enable_features task_killing flag. Marathon doesn't use this task state yet.

Web UI

The Web UI for Marathon sees a number of improvements in this version as well.

Applications and Search

  • improved global search with better ranking (fuzzy matching)
  • groups are now shown as part of search results too
  • application list supports for browsing empty groups
  • create empty groups directly from the UI
  • a new sidebar filter to match apps with attached volumes

Create/Edit form improvements

  • redesigned form with improved usability
  • completely new JSON editor
  • create resident tasks with persistent local volumes from the UI
  • simplify port management

For the full set of changes, please refer to the Marathon UI release pages.

Fixed issues

  • #929 - Allow tcp,udp ports in portMappings
  • #2751 - Commit suicide on ZK exceptions
  • #3091 - App updates hanging on downscales
  • #3169 - Possible to start app with negative resources
  • #3241 - Serverside validation messages are inconsistent
  • #3251 - Tried to kill an existing app, said it doesn't exist even though it does
  • #3338 - Path in health checks validation failure results is broken
  • #3367 - Relative paths for dependencies not working anymore
  • #3377 - Marathon should remove the FrameworkId for special Mesos errors
  • #3385 - Creating an empty group using an existing app ID should return 409
  • #3402 - Race conditions in HttpEventActor
  • #3423 - Report kills due to failed healthcheck.
  • #3439 - Relative paths in dependencies should be resolvable.

List of Contributors

Commits Contributor
101 Matthias Veit
60 Matthias Eichstedt
54 Peter Kolloch
43 Gastón Kleiman
11 sascala
11 Alexander Weber
5 Pierluigi Cau
5 Suzanne Scala
3 Aaron Bell
3 Sunil Shah
3 alenkacz
3 Joerg Schad
2 Isabel Jimenez
2 Tomasz Janiszewski
2 Pradeep Sekar
2 philipnrmn
2 jlamillan
2 Dr. Stefan Schimanski
2 Timo Reimann
2 Lee Munroe
1 pierrecdn
1 Leonardo Trabuco
2 Lukas Loesche
1 Peter Kelley
1 Brian Antonelli
1 Philip Norman
1 Philipp Hinrichsen
1 Kiril Nesenko
1 Timothée GERMAIN
1 Zhou Weitao

Generated by git shortlog -s -n v0.15.3..v1.0.0-RC1 for the Marathon repository

Downloads

Tarball:
http://downloads.mesosphere.com/marathon/v1.0.0-RC1/marathon-1.0.0-RC1.tgz

SHA:
http://downloads.mesosphere.com/marathon/v1.0.0-RC1/marathon-v1.0.0-RC1.tgz.sha256

Docker:
https://registry.hub.docker.com/u/mesosphere/marathon with tag v1.0.0-RC1

Packages are also available via the Mesosphere repositories.
See: https://mesosphere.com/blog/2014/07/17/mesosphere-package-repositories/

v0.10.2-RC8

09 Mar 11:05
Compare
Choose a tag to compare
v0.10.2-RC8 Pre-release
Pre-release

Fixes #2509 Leadership not abdicated on ZK connection loss
Fixes #3377 Remove the FrameworkId in case of a specific error message from Mesos.

v0.15.3

23 Feb 12:53
Compare
Choose a tag to compare

Changes from 0.15.2 to 0.15.3

This is a bug fix release.

Fixed issues

  • #3192 - Adapt default Mem/CPU settings
  • #3251 - Tried to kill an existing app, said it doesn't exist even though it does

Changelog from Marathon 0.15.1 to 0.15.2: v0.15.2...v0.15.3

Please see the release notes of v0.15.0 for a complete list of the changes in v0.15.0.

Downloads

Tarball:
http://downloads.mesosphere.com/marathon/v0.15.3/marathon-0.15.3.tgz

SHA:
http://downloads.mesosphere.com/marathon/v0.15.3/marathon-0.15.3.tgz.sha256

Docker:
https://registry.hub.docker.com/u/mesosphere/marathon with tag v0.15.3

Packages are also available via the Mesosphere repositories.
See: https://mesosphere.com/blog/2014/07/17/mesosphere-package-repositories/

v0.15.2

16 Feb 16:38
Compare
Choose a tag to compare

Changes from 0.15.1 to 0.15.2

This release includes fixes for two bugs introduced in 0.15.0.

Fixed issues

  • #3172 - "Apply" button is broken (sending both uris and fetch)
  • #3242 - Treat "value" attribute in server-side validation errors as general error

Changelog

Changelog from Marathon 0.15.1 to 0.15.2: v0.15.1...v0.15.2

Please see the release notes of v0.15.0 for a complete list of the changes in v0.15.0.

Downloads

Tarball:
http://downloads.mesosphere.com/marathon/v0.15.2/marathon-0.15.2.tgz

SHA:
http://downloads.mesosphere.com/marathon/v0.15.2/marathon-0.15.2.tgz.sha256

Docker:
https://registry.hub.docker.com/u/mesosphere/marathon with tag v0.15.2

Packages are also available via the Mesosphere repositories.
See: https://mesosphere.com/blog/2014/07/17/mesosphere-package-repositories/

v0.15.1

08 Feb 13:10
Compare
Choose a tag to compare

Changes from 0.15.0 to 0.15.1

This release includes fixes for several bugs introduced in 0.15.0.

Fixed issues

  • #3139 - Marathon 0.15.0 forces redeploy of app all the time
  • #3054 - Empty application attributes are accidentally submited by the UI
  • #3141 - Jetty throws exception during load
  • #3164 - Marathon 0.15 error on bad application id is really bad
  • #3160 - Show 400 error for Constraints field
  • #3140 - breaking API change on portIndex

Changelog

Changelog from Marathon 0.15.0 to 0.15.1: v0.15.0...v0.15.1

Please see the release notes of v0.15.0 for a complete list of the changes in v0.15.0.

Downloads

Tarball:
http://downloads.mesosphere.com/marathon/v0.15.1/marathon-0.15.1.tgz

SHA:
http://downloads.mesosphere.com/marathon/v0.15.1/marathon-0.15.1.tgz.sha256

Docker:
https://registry.hub.docker.com/u/mesosphere/marathon with tag v0.15.1

Packages are also available via the Mesosphere repositories.
See: https://mesosphere.com/blog/2014/07/17/mesosphere-package-repositories/

v0.15.1-RC1

03 Feb 18:14
Compare
Choose a tag to compare
v0.15.1-RC1 Pre-release
Pre-release

Fixed Issues

  • #3139 - Marathon 0.15.0 forces redeploy of app all the time
  • #3054 - Empty application attributes are accidentally submited by the UI
  • #3141 - Jetty throws exception during load

Changelog

Changelog from Marathon 0.15.0 to 0.15.1-RC1: v0.15.0...v0.15.1-RC1

Please see the release notes of v0.15.0 for a complete list of the changes in v0.15.0.

v0.15.0

02 Feb 16:52
Compare
Choose a tag to compare

Changes from 0.14.0 to 0.15.0

Recommended Mesos version is 0.26.0

We tested this release against Mesos version 0.26.0. Thus, this is the recommended Mesos version for this release.

Overview

Integration of Mesos Fetcher Cache

The v2 REST API was extended to support the Mesos fetcher cache. This allows users to configure a list of resource URIs that will be copied into the task sandbox prior to running the task, from either a local or external location. For details on the fetcher cache's capabilities, please see the fetcher cache documentation.

Migration from Marathon version 0.7 or lower removed

It is no longer possible to migrate from Marathon versions prior to version 0.8. If you want to upgrade old versions we recommend to do a step by step migration using the latest stable version following your installed version and so on.

haproxy-marathon-bridge is deprecated and removed from the bin directory

In recent versions we published a simple shell script to update haproxy configuration. The script can still be found in the examples directory. marathon-lb is the successor of this script.

Under the Hood

There have been a lot of interesting changes which we only summarize for now. In the next days, we will follow up with extend documentation about them.

New metrics

We added a bunch of important metrics and documentation on the /metrics endpoint and fixed measuring some existing metrics.

Limit concurrent status update processing

We now limit the maximum number of concurrently processed task status updates. If the limit is reached, further status updates are queued. The queue is limited, too, so that at some point new status updates are rejected and not acknowledged. Eventually, Mesos will resend the status updates that we didn't process.

Task state tracking redesign

We have rewritten the component that holds the task states: the TaskTracker. We removed the old implementation that used concurrent data structures, and now use an actor based implementation. The new implementation is easier to reason about and allows explicit concurrency management as described in the last section.

Explicit queuing of application configuration updates

Marathon has been serializing updates to the app configuration for a while. We made queuing outstanding configuration requests explicit and also limited the maximum size of the queue.

Optimized /v2/tasks (TXT)

Since some service discovery solutions poll this end-point, performance is important. We improved request rates by about 30%.

Changes to the threading model

Prior to this release, Marathon would create new threads when needed. Now we switched to a model where we have some fixed size thread pools and thread pools that will only grow if too many threads have become blocked. This should reduce the number of threads under load.

Model validation

Marathon is now utilizing Accord, a modern approach to model validation which will hopefully leads to better error messages in the future.

Marathon UI

A number of very convenient features and improvements made it into this release.

Perform actions directly from the Applications list

A new contextual dropdown menu in the Applications list gives access to the most useful actions (scale, destroy, suspend, etc.) without having to enter an application's detail view. Additionally, it is now possible to perform scale and delete operations on entire Groups.

Better feedback

The feedback dialogs have been completely redesigned to be clearer and more useful, adding three possible color-coded severity levels: info, warning and error. In addition, the action button labels have been rephrased for improved usability. Buttons that may lead to dangerous actions (such as "force scale") are also not preselected by default anymore.

Application Health

The health status breakdown is now also shown in the application details page.

...and much more

For the complete set of changes, please refer to the Marathon UI CHANGELOG

Fixed issues

  • #2918 - Incorrect Step-wise timers in TaskStatusUpdateProcessorImpl
  • #2919 - StateMetrics.timed(Read/Write) incorrectly used for methods returning Futures
  • #2951 - Incorrect Constraint lead to an application exception, but should give an error response
  • #2957 - Unbounded ThreadPool is used for too many operations
  • #2982 - Double offerLeadership invocation after driver failure
  • #2989 - Report task count metrics
  • #2868 - Marathon sometimes tries (and fails) to assign duplicated service ports
  • #2938 - Don't log giant port lists
  • #2855 - Create app failed when there're multiple same word in the app id
  • #3051 - Can't add dynamic ports using PUT
  • #3047 - Event callbacks hold on to unresponsive hosts
  • #2892 - Version in task detail component shouldn't be localised
  • #2893 - App page component should display the right number of tasks
  • #2949 - AjaxWrapper does't handle TypeError correctly
  • #3065 - Prevent ctrl-c keyboard shortcut from showing the Create modal dialog
  • #3054 - Empty - non set- application attributes are accidentaly submited by the UI
  • #3064 - Labels dropdown menu not showing up
  • #3063 - After scaling a healthy app to 0, it appears to be Infinity% overcapacity

List of Contributors

Commits Contributor
29 Peter Kolloch
14 Gastón Kleiman
9 Matthias Eichstedt
6 Matthias Veit
5 Alexander Weber
5 Pierluigi Cau
2 Tomasz Janiszewski
2 Tobi Knaup
1 Suzanne Scala
1 avinash sridharan
1 jtrenholm
1 Adam Medziński
1 sascala
1 Brenden Matthews
1 Christopher M Luciano
1 David Bayendor
1 Justin Good
1 Mateusz Gajewski
1 Philip Norman
1 Philipp Hinrichsen

Generated by git shortlog -s -n --no-merges v0.14.1..v0.15.0 for the Marathon repository

Downloads

Tarball:
http://downloads.mesosphere.com/marathon/v0.15.0/marathon-0.15.0.tgz

SHA:
http://downloads.mesosphere.com/marathon/v0.15.0/marathon-0.15.0.tgz.sha256

Docker:
https://registry.hub.docker.com/u/mesosphere/marathon with tag v0.15.0

Packages are also available via the Mesosphere repositories.
See: https://mesosphere.com/blog/2014/07/17/mesosphere-package-repositories/