def test_services_dns_prefix(self): settings.PROXIES_CONFIG.auth_enabled = True settings.PROXIES_CONFIG.dns_use_resolver = True expected = """ location ~ /services/v1/([-_.:\w]+)/([-_.:\w]+)/([-_.:\w]+)/runs/([-_.:\w]+)/(.*) { auth_request /auth/v1/; auth_request_set $auth_status $upstream_status; resolver coredns.kube-system.svc.cluster.local valid=5s; proxy_pass http://plx-operation-$4.$1.svc.cluster.local; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_hide_header X-Frame-Options; proxy_set_header Origin ""; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_buffering off; } """ # noqa settings.PROXIES_CONFIG.dns_prefix = "coredns.kube-system" settings.PROXIES_CONFIG.dns_custom_cluster = "cluster.local" assert get_dns_config() == "coredns.kube-system.svc.cluster.local" resolver = get_resolver() assert ( get_services_location_config( resolver=resolver, auth=get_auth_config(), rewrite=False ) == expected ) expected = """ location ~ /services/v1/([-_.:\w]+)/([-_.:\w]+)/([-_.:\w]+)/runs/([-_.:\w]+)/(.*) { auth_request /auth/v1/; auth_request_set $auth_status $upstream_status; resolver kube-dns.new-system.svc.new-dns valid=5s; proxy_pass http://plx-operation-$4.$1.svc.new-dns; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_hide_header X-Frame-Options; proxy_set_header Origin ""; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_buffering off; } """ # noqa settings.PROXIES_CONFIG.dns_prefix = "kube-dns.new-system" settings.PROXIES_CONFIG.dns_custom_cluster = "new-dns" assert get_dns_config() == "kube-dns.new-system.svc.new-dns" resolver = get_resolver() assert ( get_services_location_config( resolver=resolver, auth=get_auth_config(), rewrite=False ) == expected )
def test_streams_location_with_dns_prefix(self): settings.PROXIES_CONFIG.auth_enabled = False settings.PROXIES_CONFIG.dns_use_resolver = True expected = """ location /streams/ { resolver coredns.kube-system.svc.cluster.local valid=5s; proxy_pass http://polyaxon-polyaxon-streams; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Origin ""; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_buffering off; } """ # noqa settings.PROXIES_CONFIG.dns_prefix = "coredns.kube-system" settings.PROXIES_CONFIG.dns_custom_cluster = "cluster.local" assert get_dns_config() == "coredns.kube-system.svc.cluster.local" resolver = get_resolver() assert get_streams_location_config(resolver=resolver, auth="") == expected expected = """ location /streams/ { auth_request /auth/v1/; auth_request_set $auth_status $upstream_status; resolver kube-dns.new-system.svc.new-dns valid=5s; proxy_pass http://polyaxon-polyaxon-streams; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Origin ""; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_buffering off; } """ # noqa settings.PROXIES_CONFIG.auth_enabled = True settings.PROXIES_CONFIG.dns_prefix = "kube-dns.new-system" settings.PROXIES_CONFIG.dns_custom_cluster = "new-dns" assert get_dns_config() == "kube-dns.new-system.svc.new-dns" resolver = get_resolver() assert ( get_streams_location_config(resolver=resolver, auth=get_auth_config()) == expected )
def test_auth_location_config(self): settings.PROXIES_CONFIG.auth_use_resolver = False settings.PROXIES_CONFIG.dns_use_resolver = False settings.PROXIES_CONFIG.auth_enabled = True expected = """ location = /auth/v1/ { proxy_pass http://polyaxon-polyaxon-api; proxy_pass_request_body off; proxy_set_header Content-Length ""; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Origin-URI $request_uri; proxy_set_header X-Origin-Method $request_method; internal; } """ # noqa assert get_auth_location_config(resolver="") == expected # Use resolver but do not enable it for auth settings.PROXIES_CONFIG.dns_use_resolver = True settings.PROXIES_CONFIG.dns_prefix = "coredns.kube-system" settings.PROXIES_CONFIG.dns_custom_cluster = "cluster.local" assert get_dns_config() == "coredns.kube-system.svc.cluster.local" resolver = get_resolver() expected = """ location = /auth/v1/ { proxy_pass http://polyaxon-polyaxon-api; proxy_pass_request_body off; proxy_set_header Content-Length ""; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Origin-URI $request_uri; proxy_set_header X-Origin-Method $request_method; internal; } """ # noqa assert get_auth_location_config(resolver=resolver) == expected # Enable resolver for auth settings.PROXIES_CONFIG.auth_use_resolver = True expected = """ location = /auth/v1/ { resolver coredns.kube-system.svc.cluster.local valid=5s; proxy_pass http://polyaxon-polyaxon-api; proxy_pass_request_body off; proxy_set_header Content-Length ""; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Origin-URI $request_uri; proxy_set_header X-Origin-Method $request_method; internal; } """ # noqa assert get_auth_location_config(resolver=resolver) == expected
def test_plugins_dns_prefix(self): proxy_services = { "tensorboard": { "port": 6006 }, "notebook": { "port": 8888 } } settings.PROXIES_CONFIG.auth_enabled = True settings.PROXIES_CONFIG.dns_use_resolver = True expected = r""" location ~ /tensorboard/proxy/([-_.:\w]+)/(.*) { auth_request /auth/v1/; auth_request_set $auth_status $upstream_status; resolver coredns.kube-system.svc.cluster.local valid=5s; rewrite_log on; rewrite ^/tensorboard/proxy/([-_.:\w]+)/(.*) /tensorboard/proxy/$1/$2 break; proxy_pass http://$1:6006; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_hide_header X-Frame-Options; proxy_set_header Origin ""; proxy_buffering off; } location ~ /notebook/proxy/([-_.:\w]+)/(.*) { auth_request /auth/v1/; auth_request_set $auth_status $upstream_status; resolver coredns.kube-system.svc.cluster.local valid=5s; rewrite_log on; rewrite ^/notebook/proxy/([-_.:\w]+)/(.*) /notebook/proxy/$1/$2 break; proxy_pass http://$1:8888; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_hide_header X-Frame-Options; proxy_set_header Origin ""; proxy_buffering off; } """ # noqa settings.PROXIES_CONFIG.dns_prefix = "coredns.kube-system" settings.PROXIES_CONFIG.dns_custom_cluster = "cluster.local" assert get_dns_config() == "coredns.kube-system.svc.cluster.local" resolver = get_resolver() assert ("\n".join( get_plugins_location_config( resolver=resolver, auth=get_auth_config(), proxy_services=proxy_services, )) == expected) expected = r""" location ~ /tensorboard/proxy/([-_.:\w]+)/(.*) { auth_request /auth/v1/; auth_request_set $auth_status $upstream_status; resolver kube-dns.new-system.svc.new-dns valid=5s; rewrite_log on; rewrite ^/tensorboard/proxy/([-_.:\w]+)/(.*) /tensorboard/proxy/$1/$2 break; proxy_pass http://$1:6006; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_hide_header X-Frame-Options; proxy_set_header Origin ""; proxy_buffering off; } location ~ /notebook/proxy/([-_.:\w]+)/(.*) { auth_request /auth/v1/; auth_request_set $auth_status $upstream_status; resolver kube-dns.new-system.svc.new-dns valid=5s; rewrite_log on; rewrite ^/notebook/proxy/([-_.:\w]+)/(.*) /notebook/proxy/$1/$2 break; proxy_pass http://$1:8888; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_hide_header X-Frame-Options; proxy_set_header Origin ""; proxy_buffering off; } """ # noqa settings.PROXIES_CONFIG.dns_prefix = "kube-dns.new-system" settings.PROXIES_CONFIG.dns_custom_cluster = "new-dns" assert get_dns_config() == "kube-dns.new-system.svc.new-dns" resolver = get_resolver() assert ("\n".join( get_plugins_location_config( resolver=resolver, auth=get_auth_config(), proxy_services=proxy_services, )) == expected)