HomeMesosphereNo notifications. 4 unresolved issues.

Networking API overhaul
ClosedAll Users

Authored by jdef on Nov 22 2016, 12:58 AM.

Details

Reviewers
aquamatthias
jenkins
jasongilanfarr
meichstedt
Commits
rMARATHON602432a78d1b: Networking API overhaul
rMARATHON3628e26aa2d0: Networking API overhaul
rMARATHONec9793fa903f: minor tweaks for integration testing
rMARATHON5fab4cbde10a: Networking API overhaul
rMARATHON97e90c723f00: Networking API overhaul
rMARATHON9d5796a72437: Networking API overhaul
rMARATHON444ab4cfa654: Minor updates based on todo list
rMARATHON75c82e9345e8: Networking API overhaul
rMARATHON30d8daa5b0d9: fix breaking scaladoc
rMARATHONd93f6d2262c5: Networking API overhaul
rMARATHON3f13c7663114: Networking API overhaul
rMARATHONcf2c5105e34d: Networking API overhaul
rMARATHON8149cf932a19: testing and rebase - move app-update unit test for preservation of…
rMARATHONb50d2cc03ccd: fix breaking scaladoc
rMARATHON723534d142ed: Networking API overhaul
rMARATHON1220e9c81a42: Networking API overhaul
rMARATHONe66972be55c6: - removed more unneeded Formats code, fixed resulting bugs and get tests…
rMARATHON883181d64169: Networking API overhaul
rMARATHONfabd63e82f2d: Networking API overhaul
rMARATHON40bb1ea6a2fa: Networking API overhaul
rMARATHON6a41f91eab54: Networking API overhaul
rMARATHONcc1ea55a0098: Networking API overhaul
rMARATHON88069454111f: Networking API overhaul
rMARATHON79bd484e77b3: Networking API overhaul
rMARATHON9cb3d8e1bbb8: Networking API overhaul
rMARATHON94ec4474e375: Networking API overhaul
rMARATHON52314af4a742: Networking API overhaul
rMARATHON5d4c50c27a08: Minor updates based on todo list
rMARATHON810e9ddaba10: Networking API overhaul
rMARATHON090667c9abd4: Networking API overhaul
rMARATHONee7ca789c339: Networking API overhaul
rMARATHON11e3747f2f67: Networking API overhaul
rMARATHON30d710bea5f6: Networking API overhaul
rMARATHON4932c46436db: Networking API overhaul
rMARATHON59df0af90283: Networking API overhaul
rMARATHON8f4a6a53891f: Networking API overhaul
rMARATHONdfd542e7fcfa: Networking API overhaul
rMARATHONb90684d8687a: Networking API overhaul
rMARATHON349429e4bb95: Networking API overhaul
rMARATHON1fa0d9d1d0e3: Networking API overhaul
rMARATHON7c9438cc47a6: Minor updates based on todo list
rMARATHON1ffc21adf2ae: Networking API overhaul
rMARATHON5701093a0795: Networking API overhaul
rMARATHONc60c5a06052e: fix scapegoat errors
rMARATHON564cab93d113: Networking API overhaul
JIRA Issues
JIRA MARATHON_EE-647 Improve Networking API
Summary
  • App, AppUpdate, GroupUpdate APIs use RAML instead of model classes (refactored normalization from Formats)
  • Networking API changes (deprecate ipAddress, deprecate app.container.docker.portMappings, add app.networks)
  • Networking model changes (remove App ipAddress, add networks; portDefinitions defaults to Nil in the model)
  • Serialization/storage changes (to compensate for the above)
  • Migration: Apps (ServiceDefinition) using now-obsolete fields are migrated to use canonical fields

proposal doc:
https://docs.google.com/document/d/1jTnuHLu6TVJ9FSLG7_L-ZMsUNlO-edSCwlHu3OVgANs/edit#

Detailed changelog

Test Plan
  • sbt test
  • automated integration testing (thanks, CI)

Diff Detail

Repository
rMARATHON marathon
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.
There are a very large number of changes, so older changes are hidden. Show Older Changes
jdef planned changes to this revision.Mar 15 2017, 11:12 PM

some of MV's most recent feedback has been addressed, some not. plus we discussed adding a validation rule to improve the user experience w/ multiple container networks and port mappings, until port mappings support per-network binding

jdef updated this revision to Diff 2292.Mar 16 2017, 5:30 PM
jdef marked 5 inline comments as done.
  • tweak commentary for PUT support
  • app validation: reject port-mappings using hostPort when multiple container networks are declared
jdef added inline comments.Mar 16 2017, 5:31 PM
docs/docs/rest-api/public/api/v2/types/group.raml
49

no, not as part of this PR. I don't think a TODO here is strange, we have TODOs all over the codebase

src/main/proto/marathon.proto
317

visually I like it here better. The fields below are all containerizer/container combos. the group of fields here is everything else. no change needed

src/main/scala/mesosphere/marathon/api/v2/AppsResource.scala
425

i was mistaken. the deprecation was partial updates vs. wholesale updates. i'll update the comment here since it's so controversial.

src/main/scala/mesosphere/marathon/storage/migration/MigrationTo1_5.scala
33
  • apps using CNI are now requried to specify a network name (they were not under the old MESOS IP/CT rules)
  • Dan may want to override the default_network_name during migration for these older apps
src/test/scala/mesosphere/marathon/api/v2/json/DeploymentFormatsTest.scala
65

Because it offers no value. We never read in Group. We read GroupUpdate.

jdef updated this revision to Diff 2293.Mar 16 2017, 9:45 PM

rebase to master

jenkins requested changes to this revision.Mar 16 2017, 9:46 PM
This revision now requires changes to proceed.Mar 16 2017, 9:46 PM
jdef updated this revision to Diff 2294.Mar 16 2017, 9:51 PM
  • POST body for /v2/groups is GroupUpdate
jenkins requested changes to this revision.Mar 16 2017, 9:55 PM
This revision now requires changes to proceed.Mar 16 2017, 9:55 PM
jdef updated this revision to Diff 2295.Mar 16 2017, 10:26 PM
  • pacify scapegoat
jenkins requested changes to this revision.Mar 16 2017, 10:26 PM
This revision now requires changes to proceed.Mar 16 2017, 10:26 PM
jdef updated this revision to Diff 2297.Mar 17 2017, 2:55 PM
  • refactor code for readability and eventual tailrec optimization
  • AppDefinition: remove unused method
jenkins requested changes to this revision.Mar 17 2017, 3:00 PM
This revision now requires changes to proceed.Mar 17 2017, 3:00 PM
jdef updated this revision to Diff 2300.Mar 17 2017, 5:33 PM
jenkins requested changes to this revision.Mar 17 2017, 5:36 PM
This revision now requires changes to proceed.Mar 17 2017, 5:36 PM
jdef updated this revision to Diff 2302.Mar 17 2017, 7:01 PM
jenkins requested changes to this revision.Mar 17 2017, 7:02 PM
This revision now requires changes to proceed.Mar 17 2017, 7:02 PM
jenkins accepted this revision.Mar 17 2017, 7:24 PM

(ノ◕ヮ◕)ノ*: It's Green :*ヽ(◕ヮ◕ヽ)

Macro titanic:

Ship it.

src/main/scala/mesosphere/marathon/api/RestResource.scala
89–106

something looks weird to me here. } =>!?

src/main/scala/mesosphere/marathon/api/v2/AppNormalization.scala
197

whoa

198–200

brackets could help

src/main/scala/mesosphere/marathon/api/v2/GroupsResource.scala
153–154

says done, but isn't?

jdef updated this revision to Diff 2306.Mar 17 2017, 9:48 PM
jenkins requested changes to this revision.Mar 17 2017, 9:48 PM
This revision now requires changes to proceed.Mar 17 2017, 9:48 PM
jdef edited the summary of this revision. (Show Details)Mar 17 2017, 9:57 PM
jenkins accepted this revision.Mar 17 2017, 10:10 PM

It's green and good to go.

aquamatthias accepted this revision.Mar 19 2017, 5:38 PM

I tested different scenarios on the API level - everything worked as expected.
This was a long way - Thanks!

src/main/scala/mesosphere/marathon/storage/migration/MigrationTo1_5.scala
33

This is a breaking change. Please add a note in the changelog and mention the env var name.

This revision is now accepted and ready to land.Mar 19 2017, 5:38 PM
jdef updated this revision to Diff 2311.Mar 20 2017, 4:39 PM

rebase to master

jenkins requested changes to this revision.Mar 20 2017, 4:39 PM
This revision now requires changes to proceed.Mar 20 2017, 4:39 PM
jenkins accepted this revision.Mar 20 2017, 5:44 PM

It's green and good to go.

This revision is now accepted and ready to land.Mar 20 2017, 5:44 PM
This revision was automatically updated to reflect the committed changes.