Skip to content

Instantly share code, notes, and snippets.

@hbagdi
Created April 15, 2020 21:50
Show Gist options
  • Save hbagdi/86816ff0f2e7c8d987e9645dbcad53d7 to your computer and use it in GitHub Desktop.
Save hbagdi/86816ff0f2e7c8d987e9645dbcad53d7 to your computer and use it in GitHub Desktop.
{
"_format_version": "1.1",
"services": [
{
"connect_timeout": 60000,
"host": "mockbin.org",
"name": "svc1",
"port": 80,
"protocol": "http",
"read_timeout": 60000,
"retries": 5,
"write_timeout": 60000,
"tags": [
"team-svc1",
"managed-by-deck",
"org-unit-42"
],
"routes": [
{
"name": "r1",
"paths": [
"/r1"
],
"path_handling": "v0",
"preserve_host": false,
"protocols": [
"http",
"https"
],
"regex_priority": 0,
"strip_path": false,
"tags": [
"managed-by-deck",
"org-unit-42"
],
"https_redirect_status_code": 301
}
]
},
{
"connect_timeout": 60000,
"host": "mockbin.org",
"name": "svc2",
"port": 80,
"protocol": "http",
"read_timeout": 60000,
"retries": 5,
"write_timeout": 60000,
"tags": [
"managed-by-deck",
"org-unit-42"
],
"routes": [
{
"name": "r2",
"paths": [
"/r2"
],
"path_handling": "v0",
"preserve_host": false,
"protocols": [
"http",
"https"
],
"regex_priority": 0,
"strip_path": false,
"tags": [
"managed-by-deck",
"org-unit-42"
],
"https_redirect_status_code": 301
}
]
},
{
"connect_timeout": 60000,
"host": "mockbin.org",
"name": "svc3",
"port": 80,
"protocol": "http",
"read_timeout": 60000,
"retries": 5,
"write_timeout": 60000,
"tags": [
"managed-by-deck",
"org-unit-42"
],
"routes": [
{
"name": "r3",
"methods": [
"GET"
],
"paths": [
"/r3"
],
"path_handling": "v0",
"preserve_host": false,
"protocols": [
"http",
"https"
],
"regex_priority": 0,
"strip_path": false,
"tags": [
"managed-by-deck",
"org-unit-42"
],
"https_redirect_status_code": 301
}
]
},
{
"connect_timeout": 60000,
"host": "mockbin.org",
"name": "svc4",
"port": 80,
"protocol": "http",
"read_timeout": 60000,
"retries": 5,
"write_timeout": 60000,
"tags": [
"team-svc1",
"managed-by-deck",
"org-unit-42"
],
"routes": [
{
"name": "r4",
"paths": [
"/r4"
],
"path_handling": "v0",
"preserve_host": false,
"protocols": [
"http",
"https"
],
"regex_priority": 0,
"strip_path": false,
"tags": [
"managed-by-deck",
"org-unit-42"
],
"https_redirect_status_code": 301
}
]
}
],
"upstreams": [
{
"name": "upstream1",
"algorithm": "round-robin",
"slots": 10000,
"healthchecks": {
"active": {
"concurrency": 10,
"healthy": {
"http_statuses": [
200,
302
],
"interval": 0,
"successes": 0
},
"http_path": "/",
"https_verify_certificate": true,
"type": "http",
"timeout": 1,
"unhealthy": {
"http_failures": 0,
"http_statuses": [
429,
404,
500,
501,
502,
503,
504,
505
],
"tcp_failures": 0,
"timeouts": 0,
"interval": 0
}
},
"passive": {
"healthy": {
"http_statuses": [
200,
201,
202,
203,
204,
205,
206,
207,
208,
226,
300,
301,
302,
303,
304,
305,
306,
307,
308
],
"successes": 0
},
"unhealthy": {
"http_failures": 0,
"http_statuses": [
429,
500,
503
],
"tcp_failures": 0,
"timeouts": 0
}
},
"threshold": 0
},
"hash_on": "none",
"hash_fallback": "none",
"hash_on_cookie_path": "/",
"tags": [
"managed-by-deck",
"org-unit-42"
],
"targets": [
{
"target": "198.51.100.11:80",
"weight": 100,
"tags": [
"managed-by-deck",
"org-unit-42"
]
},
{
"target": "198.51.100.12:80",
"weight": 100,
"tags": [
"managed-by-deck",
"org-unit-42"
]
},
{
"target": "198.51.100.13:80",
"weight": 100,
"tags": [
"managed-by-deck",
"org-unit-42"
]
}
]
},
{
"name": "upstream12-bar",
"algorithm": "round-robin",
"slots": 10000,
"healthchecks": {
"active": {
"concurrency": 10,
"healthy": {
"http_statuses": [
200,
302
],
"interval": 0,
"successes": 0
},
"http_path": "/",
"https_verify_certificate": true,
"type": "http",
"timeout": 1,
"unhealthy": {
"http_failures": 0,
"http_statuses": [
429,
404,
500,
501,
502,
503,
504,
505
],
"tcp_failures": 0,
"timeouts": 0,
"interval": 0
}
},
"passive": {
"healthy": {
"http_statuses": [
200,
201,
202,
203,
204,
205,
206,
207,
208,
226,
300,
301,
302,
303,
304,
305,
306,
307,
308
],
"successes": 0
},
"unhealthy": {
"http_failures": 0,
"http_statuses": [
429,
500,
503
],
"tcp_failures": 0,
"timeouts": 0
}
},
"threshold": 0
},
"hash_on": "none",
"hash_fallback": "none",
"hash_on_cookie_path": "/",
"tags": [
"managed-by-deck",
"org-unit-42"
],
"targets": [
{
"target": "198.51.100.11:80",
"weight": 100,
"tags": [
"managed-by-deck",
"org-unit-42"
]
},
{
"target": "198.51.100.12:80",
"weight": 100,
"tags": [
"managed-by-deck",
"org-unit-42"
]
},
{
"target": "198.51.100.13:80",
"weight": 100,
"tags": [
"managed-by-deck",
"org-unit-42"
]
}
]
},
{
"name": "upstream12-foo",
"algorithm": "round-robin",
"slots": 10000,
"healthchecks": {
"active": {
"concurrency": 10,
"healthy": {
"http_statuses": [
200,
302
],
"interval": 0,
"successes": 0
},
"http_path": "/",
"https_verify_certificate": true,
"type": "http",
"timeout": 1,
"unhealthy": {
"http_failures": 0,
"http_statuses": [
429,
404,
500,
501,
502,
503,
504,
505
],
"tcp_failures": 0,
"timeouts": 0,
"interval": 0
}
},
"passive": {
"healthy": {
"http_statuses": [
200,
201,
202,
203,
204,
205,
206,
207,
208,
226,
300,
301,
302,
303,
304,
305,
306,
307,
308
],
"successes": 0
},
"unhealthy": {
"http_failures": 0,
"http_statuses": [
429,
500,
503
],
"tcp_failures": 0,
"timeouts": 0
}
},
"threshold": 0
},
"hash_on": "none",
"hash_fallback": "none",
"hash_on_cookie_path": "/",
"tags": [
"managed-by-deck",
"org-unit-42"
],
"targets": [
{
"target": "198.51.100.11:80",
"weight": 100,
"tags": [
"managed-by-deck",
"org-unit-42"
]
},
{
"target": "198.51.100.12:80",
"weight": 100,
"tags": [
"managed-by-deck",
"org-unit-42"
]
},
{
"target": "198.51.100.13:80",
"weight": 100,
"tags": [
"managed-by-deck",
"org-unit-42"
]
}
]
},
{
"name": "upstream14-bar",
"algorithm": "round-robin",
"slots": 10000,
"healthchecks": {
"active": {
"concurrency": 10,
"healthy": {
"http_statuses": [
200,
302
],
"interval": 0,
"successes": 0
},
"http_path": "/",
"https_verify_certificate": true,
"type": "http",
"timeout": 1,
"unhealthy": {
"http_failures": 0,
"http_statuses": [
429,
404,
500,
501,
502,
503,
504,
505
],
"tcp_failures": 0,
"timeouts": 0,
"interval": 0
}
},
"passive": {
"healthy": {
"http_statuses": [
200,
201,
202,
203,
204,
205,
206,
207,
208,
226,
300,
301,
302,
303,
304,
305,
306,
307,
308
],
"successes": 0
},
"unhealthy": {
"http_failures": 0,
"http_statuses": [
429,
500,
503
],
"tcp_failures": 0,
"timeouts": 0
}
},
"threshold": 0
},
"hash_on": "none",
"hash_fallback": "none",
"hash_on_cookie_path": "/",
"tags": [
"managed-by-deck",
"org-unit-42"
],
"targets": [
{
"target": "198.51.100.11:80",
"weight": 100,
"tags": [
"managed-by-deck",
"org-unit-42"
]
},
{
"target": "198.51.100.12:80",
"weight": 100,
"tags": [
"managed-by-deck",
"org-unit-42"
]
},
{
"target": "198.51.100.13:80",
"weight": 100,
"tags": [
"managed-by-deck",
"org-unit-42"
]
}
]
},
{
"name": "upstream14-foo",
"algorithm": "round-robin",
"slots": 10000,
"healthchecks": {
"active": {
"concurrency": 10,
"healthy": {
"http_statuses": [
200,
302
],
"interval": 0,
"successes": 0
},
"http_path": "/",
"https_verify_certificate": true,
"type": "http",
"timeout": 1,
"unhealthy": {
"http_failures": 0,
"http_statuses": [
429,
404,
500,
501,
502,
503,
504,
505
],
"tcp_failures": 0,
"timeouts": 0,
"interval": 0
}
},
"passive": {
"healthy": {
"http_statuses": [
200,
201,
202,
203,
204,
205,
206,
207,
208,
226,
300,
301,
302,
303,
304,
305,
306,
307,
308
],
"successes": 0
},
"unhealthy": {
"http_failures": 0,
"http_statuses": [
429,
500,
503
],
"tcp_failures": 0,
"timeouts": 0
}
},
"threshold": 0
},
"hash_on": "none",
"hash_fallback": "none",
"hash_on_cookie_path": "/",
"tags": [
"managed-by-deck",
"org-unit-42"
],
"targets": [
{
"target": "198.51.100.11:80",
"weight": 100,
"tags": [
"managed-by-deck",
"org-unit-42"
]
},
{
"target": "198.51.100.12:80",
"weight": 100,
"tags": [
"managed-by-deck",
"org-unit-42"
]
},
{
"target": "198.51.100.13:80",
"weight": 100,
"tags": [
"managed-by-deck",
"org-unit-42"
]
}
]
},
{
"name": "upstream15-bar",
"algorithm": "round-robin",
"slots": 10000,
"healthchecks": {
"active": {
"concurrency": 10,
"healthy": {
"http_statuses": [
200,
302
],
"interval": 0,
"successes": 0
},
"http_path": "/",
"https_verify_certificate": true,
"type": "http",
"timeout": 1,
"unhealthy": {
"http_failures": 0,
"http_statuses": [
429,
404,
500,
501,
502,
503,
504,
505
],
"tcp_failures": 0,
"timeouts": 0,
"interval": 0
}
},
"passive": {
"healthy": {
"http_statuses": [
200,
201,
202,
203,
204,
205,
206,
207,
208,
226,
300,
301,
302,
303,
304,
305,
306,
307,
308
],
"successes": 0
},
"unhealthy": {
"http_failures": 0,
"http_statuses": [
429,
500,
503
],
"tcp_failures": 0,
"timeouts": 0
}
},
"threshold": 0
},
"hash_on": "none",
"hash_fallback": "none",
"hash_on_cookie_path": "/",
"tags": [
"managed-by-deck",
"org-unit-42"
],
"targets": [
{
"target": "198.51.100.11:80",
"weight": 100,
"tags": [
"managed-by-deck",
"org-unit-42"
]
},
{
"target": "198.51.100.12:80",
"weight": 100,
"tags": [
"managed-by-deck",
"org-unit-42"
]
},
{
"target": "198.51.100.13:80",
"weight": 100,
"tags": [
"managed-by-deck",
"org-unit-42"
]
}
]
},
{
"name": "upstream15-foo",
"algorithm": "round-robin",
"slots": 10000,
"healthchecks": {
"active": {
"concurrency": 10,
"healthy": {
"http_statuses": [
200,
302
],
"interval": 0,
"successes": 0
},
"http_path": "/",
"https_verify_certificate": true,
"type": "http",
"timeout": 1,
"unhealthy": {
"http_failures": 0,
"http_statuses": [
429,
404,
500,
501,
502,
503,
504,
505
],
"tcp_failures": 0,
"timeouts": 0,
"interval": 0
}
},
"passive": {
"healthy": {
"http_statuses": [
200,
201,
202,
203,
204,
205,
206,
207,
208,
226,
300,
301,
302,
303,
304,
305,
306,
307,
308
],
"successes": 0
},
"unhealthy": {
"http_failures": 0,
"http_statuses": [
429,
500,
503
],
"tcp_failures": 0,
"timeouts": 0
}
},
"threshold": 0
},
"hash_on": "none",
"hash_fallback": "none",
"hash_on_cookie_path": "/",
"tags": [
"managed-by-deck",
"org-unit-42"
],
"targets": [
{
"target": "198.51.100.11:80",
"weight": 100,
"tags": [
"managed-by-deck",
"org-unit-42"
]
},
{
"target": "198.51.100.12:80",
"weight": 100,
"tags": [
"managed-by-deck",
"org-unit-42"
]
},
{
"target": "198.51.100.13:80",
"weight": 100,
"tags": [
"managed-by-deck",
"org-unit-42"
]
}
]
},
{
"name": "upstream16-bar",
"algorithm": "round-robin",
"slots": 10000,
"healthchecks": {
"active": {
"concurrency": 10,
"healthy": {
"http_statuses": [
200,
302
],
"interval": 0,
"successes": 0
},
"http_path": "/",
"https_verify_certificate": true,
"type": "http",
"timeout": 1,
"unhealthy": {
"http_failures": 0,
"http_statuses": [
429,
404,
500,
501,
502,
503,
504,
505
],
"tcp_failures": 0,
"timeouts": 0,
"interval": 0
}
},
"passive": {
"healthy": {
"http_statuses": [
200,
201,
202,
203,
204,
205,
206,
207,
208,
226,
300,
301,
302,
303,
304,
305,
306,
307,
308
],
"successes": 0
},
"unhealthy": {
"http_failures": 0,
"http_statuses": [
429,
500,
503
],
"tcp_failures": 0,
"timeouts": 0
}
},
"threshold": 0
},
"hash_on": "none",
"hash_fallback": "none",
"hash_on_cookie_path": "/",
"tags": [
"managed-by-deck",
"org-unit-42"
],
"targets": [
{
"target": "198.51.100.11:80",
"weight": 100,
"tags": [
"managed-by-deck",
"org-unit-42"
]
},
{
"target": "198.51.100.12:80",
"weight": 100,
"tags": [
"managed-by-deck",
"org-unit-42"
]
},
{
"target": "198.51.100.13:80",
"weight": 100,
"tags": [
"managed-by-deck",
"org-unit-42"
]
}
]
},
{
"name": "upstream16-foo",
"algorithm": "round-robin",
"slots": 10000,
"healthchecks": {
"active": {
"concurrency": 10,
"healthy": {
"http_statuses": [
200,
302
],
"interval": 0,
"successes": 0
},
"http_path": "/",
"https_verify_certificate": true,
"type": "http",
"timeout": 1,
"unhealthy": {
"http_failures": 0,
"http_statuses": [
429,
404,
500,
501,
502,
503,
504,
505
],
"tcp_failures": 0,
"timeouts": 0,
"interval": 0
}
},
"passive": {
"healthy": {
"http_statuses": [
200,
201,
202,
203,
204,
205,
206,
207,
208,
226,
300,
301,
302,
303,
304,
305,
306,
307,
308
],
"successes": 0
},
"unhealthy": {
"http_failures": 0,
"http_statuses": [
429,
500,
503
],
"tcp_failures": 0,
"timeouts": 0
}
},
"threshold": 0
},
"hash_on": "none",
"hash_fallback": "none",
"hash_on_cookie_path": "/",
"tags": [
"managed-by-deck",
"org-unit-42"
],
"targets": [
{
"target": "198.51.100.11:80",
"weight": 100,
"tags": [
"managed-by-deck",
"org-unit-42"
]
},
{
"target": "198.51.100.12:80",
"weight": 100,
"tags": [
"managed-by-deck",
"org-unit-42"
]
},
{
"target": "198.51.100.13:80",
"weight": 100,
"tags": [
"managed-by-deck",
"org-unit-42"
]
}
]
}
],
"certificates": [
{
"id": "13c562a1-191c-4464-9b18-e5222b46035b",
"cert": "-----BEGIN CERTIFICATE-----\nMIIC1jCCAb4CCQCt23nwvxSCvjANBgkqhkiG9w0BAQsFADAtMRYwFAYDVQQDDA0q\nLmV4YW1wbGUuY29tMRMwEQYDVQQKDAprb25naHEub3JnMB4XDTE4MTIzMTIwMTkw\nMVoXDTE5MTIzMTIwMTkwMVowLTEWMBQGA1UEAwwNKi5leGFtcGxlLmNvbTETMBEG\nA1UECgwKa29uZ2hxLm9yZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB\nAKj/2r1AXo9x+2Csrd0SHbpnzuW+xYqgsd+YA9ZrZNV7SZGSbaZymsRMz8wg5OIU\niUik2GM1749/lYvojLFStBPy9UY/gd++5f3wLp4xHiI+IU2XQ97otXKGfyh36RmN\ndKDqPLN8BG3R346s/y1GOulFvLthYmZVYF9ufHiqimfEDSbTt79P5C3X0Rw/afK1\nGjHEJPCB/XkZ6lkcEyL6LqZI5oBigDqa9hI/nWLxEzfm8pgosiS38p9TAijlOkpm\ntX2p2b1pktlNIy3rxsqj6IynN9Wc7FpV1N4HoPKV7vQQ08hjwW6WfanVthaaJosj\nVr2TBCJ1ltAmsb+5B2VPYVkCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAnByTyQfV\n3LkwuoWS57CWcqbNw/cHnv/ChzmIv+6mIXvDBSvCgrPZIWCpaCfYRG6R51E44fr/\n8V1AKT0Zt15DjrXEEcIGQgsIDO91/wlL091fTAUzSbL0yt7HTlm8sX6xndPNAZrq\ncfcIPVMxknfqPy2VqS4IrNC03pHkDKtokphBjVUlkiWsdcq+fHYbS2xL2d1Da/uN\nhX/iwgo+v5gOF5xtaXx7D7L3Cf+MHb/MOXWPfYXNiTpSBVX8/Kx5RP+QLI16nWvw\nlrijTlXZFR8NIZBrCo/QZ2cNbUAbN3R0n+/kMFubxBL8WEm6Qhi9jBjbJeDMspd8\nC+/TZJQMpx5vyA==\n-----END CERTIFICATE-----\n",
"key": "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCo/9q9QF6Pcftg\nrK3dEh26Z87lvsWKoLHfmAPWa2TVe0mRkm2mcprETM/MIOTiFIlIpNhjNe+Pf5WL\n6IyxUrQT8vVGP4HfvuX98C6eMR4iPiFNl0Pe6LVyhn8od+kZjXSg6jyzfARt0d+O\nrP8tRjrpRby7YWJmVWBfbnx4qopnxA0m07e/T+Qt19EcP2nytRoxxCTwgf15GepZ\nHBMi+i6mSOaAYoA6mvYSP51i8RM35vKYKLIkt/KfUwIo5TpKZrV9qdm9aZLZTSMt\n68bKo+iMpzfVnOxaVdTeB6Dyle70ENPIY8Fuln2p1bYWmiaLI1a9kwQidZbQJrG/\nuQdlT2FZAgMBAAECggEAVnyRcda2Tcy0K7ZTR9aUlie370VhDN/OB7JhDGNreAEf\nFjuMl+kAoUL5+OpAmB6QXzfVcXhRv+s4GiCJl9nORINK2Id5rIqiYwF+qgBS/o0z\nN+UYm8QVz6Va/9fV1/jXXd5h8Cygi58jPH32HTJaxbSlsHNXCy3YIx6E3q/QIueR\n6ZdSXPqMEqxEU19M9jW8UeiRFrpmcyYxVpfxYIY/+O9lYjSpaeLs7hZeCP9PqWXA\nSxz2CnHZ8BcsDxAyuoHoVw+kjMpUMvA3sD4lwkV8BAYzfLmQf6PR83SFNsrE8XYu\n/8WnQuCuytcl8Zg55R6tGCvf6Wyyf+MDRPwv/43QMQKBgQDbqK9Dq54k+EHgSNnP\nK6AhNjFd6aqcNC1kom/sSlWBnuA/BEqJMECr8S2dYvzONUPPfX5NNUjB4Vw3Qw7a\npUgKuCQoVpzpZs5m1bk78itWDtA84LjkXfdejnUXVw/aVxLCM5QV9aEkm/dEWWMI\nP1WTYVoWoZCLlEE08q0AvZQcdQKBgQDE9ZCmc6ncmhnQftuRj5PnXG2a79MLCT61\nsCEBDVvkcUJVqbzwGRLwRkdIzLgvmiuP+SukHgyfr8/RXG99xEW/q7NDrtEcqfXP\n19QXwOIp5NwDnOXyAlXiyZ50fCE2tSo2wP485+NIhmKj5Zt6y/DL6Qbc5k73XmK4\nKX5Ej15k1QKBgQCc6KeiIFLMt+Ze78tfORue/dZP7p3oDUGr1Hk9AnCIMlSfz1Hr\nI+Per17VQaOzLcttyYhSYNDDZld4RlezCkQnHBkAE7bs53pjbSJv1vLr+5L3GdQZ\nlaIiEoNEE/YIExEcVrne4eKlgyAj2/JpLszThcRTzD+z5UibKQs6LzJBDQKBgDVa\ndAGzCUt57w48nwvyQdWFgydaWef+bB9Zg8c+MCtUxuxfm4/Kqwetcff1hNtYPv60\nN68weKj1Pi1vhcAi3+YJA/mMrJbAL5dK1uhMVreUiEjuQpfpLAzQIv1Y9sJUFwhY\nBUbIZhgqVyQguZptDmCeUj6aoL9/sOxESTEXSTG1AoGBAMQ5iJZMsdLCERv0+6Y1\nF/t/YSW8cugB3vdV9jHZuosoprz48p92pYP8OdQc70H5hZt53hoYNgYFSd+MU6H1\nhJCaXTsiP4IUmBjiwzSp3o1ctP8lWvnyJpAadYdDhaDaAAoaMjCo9cm5OMwc8t8x\nhwAPXV2cgWH8fPcT9NLAcwWk\n-----END PRIVATE KEY-----\n",
"tags": [
"cloudops-managed",
"managed-by-deck",
"org-unit-42"
],
"snis": [
{
"name": "demo1.example.com",
"tags": [
"managed-by-deck",
"org-unit-42"
]
},
{
"name": "demo2.example.com",
"tags": [
"managed-by-deck",
"org-unit-42"
]
},
{
"name": "demo3.example.com",
"tags": [
"managed-by-deck",
"org-unit-42"
]
}
]
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment