{"action":"created","issue":{"url":"https://api.github.com/repos/openshift/openshift-ansible/issues/10456","repository_url":"https://api.github.com/repos/openshift/openshift-ansible","labels_url":"https://api.github.com/repos/openshift/openshift-ansible/issues/10456/labels{/name}","comments_url":"https://api.github.com/repos/openshift/openshift-ansible/issues/10456/comments","events_url":"https://api.github.com/repos/openshift/openshift-ansible/issues/10456/events","html_url":"https://github.com/openshift/openshift-ansible/pull/10456","id":372221271,"node_id":"MDExOlB1bGxSZXF1ZXN0MjI0NDgwNzE1","number":10456,"title":"fix(loadbalancer): haproxy should check for /healthz","user":{"login":"faust64","id":211675,"node_id":"MDQ6VXNlcjIxMTY3NQ==","avatar_url":"https://avatars1.githubusercontent.com/u/211675?v=4","gravatar_id":"","url":"https://api.github.com/users/faust64","html_url":"https://github.com/faust64","followers_url":"https://api.github.com/users/faust64/followers","following_url":"https://api.github.com/users/faust64/following{/other_user}","gists_url":"https://api.github.com/users/faust64/gists{/gist_id}","starred_url":"https://api.github.com/users/faust64/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/faust64/subscriptions","organizations_url":"https://api.github.com/users/faust64/orgs","repos_url":"https://api.github.com/users/faust64/repos","events_url":"https://api.github.com/users/faust64/events{/privacy}","received_events_url":"https://api.github.com/users/faust64/received_events","type":"User","site_admin":false},"labels":[{"id":696742997,"node_id":"MDU6TGFiZWw2OTY3NDI5OTc=","url":"https://api.github.com/repos/openshift/openshift-ansible/labels/needs-ok-to-test","name":"needs-ok-to-test","color":"b60205","default":false},{"id":681633081,"node_id":"MDU6TGFiZWw2ODE2MzMwODE=","url":"https://api.github.com/repos/openshift/openshift-ansible/labels/size/M","name":"size/M","color":"eebb00","default":false}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":4,"created_at":"2018-10-20T15:14:50Z","updated_at":"2018-12-14T15:14:50Z","closed_at":"2018-12-13T18:33:44Z","author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/openshift/openshift-ansible/pulls/10456","html_url":"https://github.com/openshift/openshift-ansible/pull/10456","diff_url":"https://github.com/openshift/openshift-ansible/pull/10456.diff","patch_url":"https://github.com/openshift/openshift-ansible/pull/10456.patch"},"body":"Querying OpenShift API, HAProxy should ensure their /healthz endpoint returns with ok.\r\n\r\nI've seen the master API service still listening for queries while being unavailable.\r\nWhen a TCP loadbalancer does not check for service /healthz, active sessions may not failover, eventually leading to remaining masters re-scheduling deployments from nodes that would have stopped reporting, while new sessions could still be sent to a faulty master.\r\n\r\nHere's a proposal reconfiguring the haproxy master-api balancers configuration, generating an `/etc/haproxy/haproxy.cfg` configuration that would look like:\r\n\r\n```\r\n[...]\r\nfrontend  atomic-openshift-api\r\n    bind *:8443\r\n    default_backend atomic-openshift-api\r\n    mode tcp\r\n    option tcplog\r\n\r\nbackend atomic-openshift-api\r\n    balance source\r\n    mode http\r\n    option ssl-hello-chk\r\n    option httpchk GET /healthz HTTP/1.0\r\n    http-check expect string ok\r\n    server      master0 10.42.253.10:8443 check ssl verify none\r\n    server      master1 10.42.253.11:8443 check ssl verify none\r\n    server      master2 10.42.253.12:8443 check ssl verify none\r\n```"},"comment":{"url":"https://api.github.com/repos/openshift/openshift-ansible/issues/comments/447354747","html_url":"https://github.com/openshift/openshift-ansible/pull/10456#issuecomment-447354747","issue_url":"https://api.github.com/repos/openshift/openshift-ansible/issues/10456","id":447354747,"node_id":"MDEyOklzc3VlQ29tbWVudDQ0NzM1NDc0Nw==","user":{"login":"faust64","id":211675,"node_id":"MDQ6VXNlcjIxMTY3NQ==","avatar_url":"https://avatars1.githubusercontent.com/u/211675?v=4","gravatar_id":"","url":"https://api.github.com/users/faust64","html_url":"https://github.com/faust64","followers_url":"https://api.github.com/users/faust64/followers","following_url":"https://api.github.com/users/faust64/following{/other_user}","gists_url":"https://api.github.com/users/faust64/gists{/gist_id}","starred_url":"https://api.github.com/users/faust64/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/faust64/subscriptions","organizations_url":"https://api.github.com/users/faust64/orgs","repos_url":"https://api.github.com/users/faust64/repos","events_url":"https://api.github.com/users/faust64/events{/privacy}","received_events_url":"https://api.github.com/users/faust64/received_events","type":"User","site_admin":false},"created_at":"2018-12-14T15:14:50Z","updated_at":"2018-12-14T15:14:50Z","author_association":"CONTRIBUTOR","body":"sure... PR's been there for over a month though. If you don't want it, just say it."}}
{"actor":{"display_login":"faust64"}}