mesosphere / marathon-lb

Marathon-lb is a service discovery & load balancing tool for DC/OS
Apache License 2.0
450 stars 300 forks source link

updated to 1.9.5 #631

Closed mikejennings closed 5 years ago

mikejennings commented 5 years ago

updated, tests passed.

marathon-lb on  master on 🐳 v18.09.3 took 9m 22s
[I] ➜ make test-integration
+ Build container image mikejennings/marathon-lb:5d6393b
+ Pushing image to hub
docker push mikejennings/marathon-lb:5d6393b
The push refers to repository [docker.io/mikejennings/marathon-lb]
f63d319a8064: Pushed
e1cd2bc04ce0: Layer already exists
5aab828cc6d0: Layer already exists
5e02ae959b09: Layer already exists
6325e828e90a: Layer already exists
9bc98e914376: Layer already exists
5d6393b: digest: sha256:19a46b06e643183786143e16ee7b51553bbcedd5788888f59e078d5baefad68b size: 1580
+ Build devkit image mesosphere/marathon-lb-devkit:latest
+ Discovering Cluster URL
+ Cluster URL: http://172.17.0.4
+ Discovering Public Node IP
+ Public Node IP: 172.17.0.6
+ Integration Testng with image mikejennings/marathon-lb:5d6393b
========================================================= test session starts =========================================================
platform linux -- Python 3.7.3rc1, pytest-3.10.1, py-1.8.0, pluggy-0.9.0 -- /usr/bin/python3
cachedir: .pytest_cache
rootdir: /marathon-lb/ci, inifile:
plugins: timeout-1.3.3, dcos-test-utils-0.1
collected 20 items

test_marathon_lb_dcos_e2e.py::test_port[backends/docker_ippc.json] PASSED                                                       [  5%]
test_marathon_lb_dcos_e2e.py::test_response[backends/docker_ippc.json] PASSED                                                   [ 10%]
test_marathon_lb_dcos_e2e.py::test_port[backends/ucr_host.json] PASSED                                                          [ 15%]
test_marathon_lb_dcos_e2e.py::test_response[backends/ucr_host.json] PASSED                                                      [ 20%]
test_marathon_lb_dcos_e2e.py::test_port[backends/docker_bridge.json] PASSED                                                     [ 25%]
test_marathon_lb_dcos_e2e.py::test_response[backends/docker_bridge.json] PASSED                                                 [ 30%]
test_marathon_lb_dcos_e2e.py::test_port[backends/ucr_ippc.json] PASSED                                                          [ 35%]
test_marathon_lb_dcos_e2e.py::test_response[backends/ucr_ippc.json] PASSED                                                      [ 40%]
test_marathon_lb_dcos_e2e.py::test_port[backends/ucr_bridge.json] PASSED                                                        [ 45%]
test_marathon_lb_dcos_e2e.py::test_response[backends/ucr_bridge.json] PASSED                                                    [ 50%]
test_marathon_lb_dcos_e2e.py::test_port[backends/docker_host.json] PASSED                                                       [ 55%]
test_marathon_lb_dcos_e2e.py::test_response[backends/docker_host.json] PASSED                                                   [ 60%]
test_marathon_lb_dcos_e2e.py::test_port[backends_1.9/docker_ippc.json] SKIPPED                                                  [ 65%]
test_marathon_lb_dcos_e2e.py::test_response[backends_1.9/docker_ippc.json] SKIPPED                                              [ 70%]
test_marathon_lb_dcos_e2e.py::test_port[backends_1.9/ucr_host.json] SKIPPED                                                     [ 75%]
test_marathon_lb_dcos_e2e.py::test_response[backends_1.9/ucr_host.json] SKIPPED                                                 [ 80%]
test_marathon_lb_dcos_e2e.py::test_port[backends_1.9/docker_bridge.json] SKIPPED                                                [ 85%]
test_marathon_lb_dcos_e2e.py::test_response[backends_1.9/docker_bridge.json] SKIPPED                                            [ 90%]
test_marathon_lb_dcos_e2e.py::test_port[backends_1.9/docker_host.json] SKIPPED                                                  [ 95%]
test_marathon_lb_dcos_e2e.py::test_response[backends_1.9/docker_host.json] SKIPPED                                              [100%]

=============================================== 12 passed, 8 skipped in 175.52 seconds ==============================================
mesosphere-ci commented 5 years ago

Can one of the admins verify this patch?

PeterFras commented 5 years ago

I am really looking forward to getting this merged. Any ETA on this issue, please?

jkoelker commented 5 years ago

I haven't had a chance to run it through any sort of testing other than the small integration test suite @mikejennings did above. I don't expect any issues but there may be some subtle template changes that will need to be documented. If ya'll have successfully run this with a real world workload, please do comment here that it worked without issue for you, if several people run it without issue I'm more inclined to merge it before the next release. Otherwise it may be a bit before I get some time to setup some test cases and run them, probably after the next release (which will include the latest 1.8.x).

paambaati commented 5 years ago

We run it in production on a Marathon cluster + HAProxy 1.9 with around 80 apps without issues.

sky-amoncadot commented 5 years ago

We can confirm that HAProxy versions 1.9.5 & 1.9.6 work fine with Marathon-lb master commit id 5ebb622. This works with GRPC if you setup as per HAProxy documentation.

DC/OS version: 1.10.8 Mesos version: 1.4.2 Marathon version: 1.5.11

Steps to achieve this:

  1. git clone master - https://github.com/mesosphere/marathon-lb
  2. Change DockerFile as per mikejennings suggestions to your preferred HAProxy version
  3. Build custom image and store into self-hosted/docker registry
  4. Edit marathon-lb .json config:
    "docker": {
      "image": "my.imageregistry.com:5003/marathon-lb:v1.9.5",
  5. Re-deploy marathon-lb > docker exec into container > run haproxy --version to confirm
jkoelker commented 5 years ago

Test output of 1.9.6:


+ Integration Testng with image jkoelker/jkoelker-marathon-lb-dev:a4aa489bd231
========================================= test session starts ==========================================
platform linux -- Python 3.7.2rc1, pytest-3.10.1, py-1.8.0, pluggy-0.9.0 -- /usr/bin/python3
cachedir: .pytest_cache
rootdir: /marathon-lb/ci, inifile:
plugins: timeout-1.3.3, dcos-test-utils-0.1
collected 20 items

test_marathon_lb_dcos_e2e.py::test_port[backends/docker_ippc.json] PASSED                        [  5%]
test_marathon_lb_dcos_e2e.py::test_response[backends/docker_ippc.json] PASSED                    [ 10%]
test_marathon_lb_dcos_e2e.py::test_port[backends/ucr_host.json] PASSED                           [ 15%]
test_marathon_lb_dcos_e2e.py::test_response[backends/ucr_host.json] PASSED                       [ 20%]
test_marathon_lb_dcos_e2e.py::test_port[backends/docker_bridge.json] PASSED                      [ 25%]
test_marathon_lb_dcos_e2e.py::test_response[backends/docker_bridge.json] PASSED                  [ 30%]
test_marathon_lb_dcos_e2e.py::test_port[backends/ucr_ippc.json] PASSED                           [ 35%]
test_marathon_lb_dcos_e2e.py::test_response[backends/ucr_ippc.json] PASSED                       [ 40%]
test_marathon_lb_dcos_e2e.py::test_port[backends/ucr_bridge.json] PASSED                         [ 45%]
test_marathon_lb_dcos_e2e.py::test_response[backends/ucr_bridge.json] PASSED                     [ 50%]
test_marathon_lb_dcos_e2e.py::test_port[backends/docker_host.json] PASSED                        [ 55%]
test_marathon_lb_dcos_e2e.py::test_response[backends/docker_host.json] PASSED                    [ 60%]
test_marathon_lb_dcos_e2e.py::test_port[backends_1.9/docker_ippc.json] SKIPPED                   [ 65%]
test_marathon_lb_dcos_e2e.py::test_response[backends_1.9/docker_ippc.json] SKIPPED               [ 70%]
test_marathon_lb_dcos_e2e.py::test_port[backends_1.9/ucr_host.json] SKIPPED                      [ 75%]
test_marathon_lb_dcos_e2e.py::test_response[backends_1.9/ucr_host.json] SKIPPED                  [ 80%]
test_marathon_lb_dcos_e2e.py::test_port[backends_1.9/docker_bridge.json] SKIPPED                 [ 85%]
test_marathon_lb_dcos_e2e.py::test_response[backends_1.9/docker_bridge.json] SKIPPED             [ 90%]
test_marathon_lb_dcos_e2e.py::test_port[backends_1.9/docker_host.json] SKIPPED                   [ 95%]
test_marathon_lb_dcos_e2e.py::test_response[backends_1.9/docker_host.json] SKIPPED               [100%]

================================ 12 passed, 8 skipped in 203.24 seconds ================================```