예제 #1
0
    def test_get_polyaxon_sidecar_service_env_vars(self):
        self.converter.internal_auth = True
        env_vars = self.converter.get_polyaxon_sidecar_service_env_vars()
        assert env_vars == get_service_env_vars(
            header=PolyaxonServiceHeaders.SERVICE,
            service_header=PolyaxonServices.SIDECAR,
            authentication_type=AuthenticationTypes.TOKEN,
            include_secret_key=False,
            include_internal_token=False,
            include_agent_token=False,
            polyaxon_default_secret_ref=settings.AGENT_CONFIG.app_secret_name,
            polyaxon_agent_secret_ref=settings.AGENT_CONFIG.agent_secret_name,
            api_host=settings.CLIENT_CONFIG.host,
            api_version=VERSION_V1,
        )

        self.converter.internal_auth = False
        env_vars = self.converter.get_polyaxon_sidecar_service_env_vars()
        assert env_vars == get_service_env_vars(
            header=PolyaxonServiceHeaders.SERVICE,
            service_header=PolyaxonServices.SIDECAR,
            authentication_type=AuthenticationTypes.TOKEN,
            include_secret_key=False,
            include_internal_token=False,
            include_agent_token=False,
            polyaxon_default_secret_ref=settings.AGENT_CONFIG.app_secret_name,
            polyaxon_agent_secret_ref=settings.AGENT_CONFIG.agent_secret_name,
            api_host=settings.CLIENT_CONFIG.host,
            api_version=VERSION_V1,
        )
예제 #2
0
 def test_get_service_env_vars_raises_for_internal_and_agent_token(self):
     with self.assertRaises(PolypodException):
         get_service_env_vars(
             header=None,
             service_header=None,
             include_secret_key=False,
             include_internal_token=True,
             include_agent_token=True,
             authentication_type=None,
             polyaxon_default_secret_ref="polyaxon-secret",
             polyaxon_agent_secret_ref="polyaxon-agent",
             api_host="localhost",
             api_version="v1",
         )
예제 #3
0
파일: base.py 프로젝트: arrayMi/polyaxon
 def get_service_env_vars(
     self,
     service_header: str,
     header: str = None,
     include_secret_key: bool = False,
     include_internal_token: bool = False,
     include_agent_token: bool = False,
     authentication_type: str = None,
 ) -> List[k8s_schemas.V1EnvVar]:
     header = header or PolyaxonServiceHeaders.SERVICE
     return get_service_env_vars(
         header=header,
         service_header=service_header,
         authentication_type=authentication_type,
         include_secret_key=include_secret_key,
         include_internal_token=include_internal_token,
         include_agent_token=include_agent_token,
         polyaxon_default_secret_ref=settings.AGENT_CONFIG.app_secret_name,
         polyaxon_agent_secret_ref=settings.AGENT_CONFIG.agent_secret_name,
         api_host=clean_host(settings.CLIENT_CONFIG.host),
         api_version=VERSION_V1,
     )
예제 #4
0
    def test_get_service_env_vars(self):
        # Call with default
        env_vars = self.converter.get_service_env_vars(service_header=None)
        assert env_vars == get_service_env_vars(
            header=PolyaxonServiceHeaders.SERVICE,
            service_header=None,
            authentication_type=None,
            include_secret_key=False,
            include_internal_token=False,
            include_agent_token=False,
            polyaxon_default_secret_ref=settings.AGENT_CONFIG.app_secret_name,
            polyaxon_agent_secret_ref=settings.AGENT_CONFIG.agent_secret_name,
            api_host=settings.CLIENT_CONFIG.host,
            api_version=VERSION_V1,
        )

        self.converter.internal_auth = True
        env_vars = self.converter.get_service_env_vars(
            service_header="sa-foo",
            header="header-foo",
            include_secret_key=True,
            include_internal_token=True,
            include_agent_token=False,
            authentication_type="internal",
        )
        assert env_vars == get_service_env_vars(
            header="header-foo",
            service_header="sa-foo",
            authentication_type="internal",
            include_secret_key=True,
            include_internal_token=True,
            include_agent_token=False,
            polyaxon_default_secret_ref=settings.AGENT_CONFIG.app_secret_name,
            polyaxon_agent_secret_ref=settings.AGENT_CONFIG.agent_secret_name,
            api_host=settings.CLIENT_CONFIG.host,
            api_version=VERSION_V1,
        )

        self.converter.internal_auth = False
        env_vars = self.converter.get_service_env_vars(
            service_header="sa-foo",
            header="header-foo",
            authentication_type="internal",
            include_secret_key=False,
            include_internal_token=False,
            include_agent_token=True,
        )
        assert env_vars == get_service_env_vars(
            service_header="sa-foo",
            header="header-foo",
            authentication_type="internal",
            include_secret_key=False,
            include_internal_token=False,
            include_agent_token=True,
            polyaxon_default_secret_ref=settings.AGENT_CONFIG.app_secret_name,
            polyaxon_agent_secret_ref=settings.AGENT_CONFIG.agent_secret_name,
            api_host=settings.CLIENT_CONFIG.host,
            api_version=VERSION_V1,
        )

        with self.assertRaises(PolypodException):
            self.converter.get_service_env_vars(
                service_header="sa-foo",
                header="header-foo",
                include_secret_key=False,
                include_internal_token=True,
                include_agent_token=True,
                authentication_type="internal",
            )
예제 #5
0
    def test_get_service_env_vars(self):
        env_vars = get_service_env_vars(
            header=None,
            service_header=None,
            include_secret_key=False,
            include_internal_token=False,
            include_agent_token=False,
            authentication_type=None,
            polyaxon_default_secret_ref="polyaxon-secret",
            polyaxon_agent_secret_ref="polyaxon-agent",
            api_host="localhost",
            api_version="v1",
            run_instance="foo.bar.runs.run_uuid",
        )
        assert len(env_vars) == 8
        # TODO: Remove in v1.2 Compatibility API_HOST
        # assert len(env_vars) == 7
        env_var_names = [env_var.name for env_var in env_vars]
        assert POLYAXON_KEYS_K8S_POD_ID in env_var_names
        assert POLYAXON_KEYS_K8S_NAMESPACE in env_var_names
        assert POLYAXON_KEYS_HOST in env_var_names
        assert POLYAXON_KEYS_IS_MANAGED in env_var_names
        assert POLYAXON_KEYS_API_VERSION in env_var_names
        assert POLYAXON_KEYS_K8S_POD_ID in env_var_names
        assert POLYAXON_KEYS_RUN_INSTANCE in env_var_names

        env_vars = get_service_env_vars(
            header="foo",
            service_header="foo",
            include_secret_key=True,
            include_internal_token=True,
            include_agent_token=False,
            authentication_type="foo",
            polyaxon_default_secret_ref="polyaxon-secret",
            polyaxon_agent_secret_ref="polyaxon-agent",
            api_host="localhost",
            api_version="v1",
            run_instance="foo.bar.runs.run_uuid",
        )
        assert len(env_vars) == 13
        # TODO: Remove in v1.2 Compatibility API_HOST
        # assert len(env_vars) == 12
        env_var_names = [env_var.name for env_var in env_vars]
        assert POLYAXON_KEYS_K8S_POD_ID in env_var_names
        assert POLYAXON_KEYS_K8S_NAMESPACE in env_var_names
        assert POLYAXON_KEYS_HOST in env_var_names
        assert POLYAXON_KEYS_IS_MANAGED in env_var_names
        assert POLYAXON_KEYS_API_VERSION in env_var_names
        assert POLYAXON_KEYS_HEADER in env_var_names
        assert POLYAXON_KEYS_HEADER_SERVICE in env_var_names
        assert POLYAXON_KEYS_SECRET_KEY in env_var_names
        assert POLYAXON_KEYS_SECRET_INTERNAL_TOKEN in env_var_names
        assert POLYAXON_KEYS_AUTHENTICATION_TYPE in env_var_names
        assert POLYAXON_KEYS_K8S_POD_ID in env_var_names
        assert POLYAXON_KEYS_RUN_INSTANCE in env_var_names

        env_vars = get_service_env_vars(
            header="foo",
            service_header="foo",
            include_secret_key=True,
            include_internal_token=False,
            include_agent_token=True,
            authentication_type="foo",
            polyaxon_default_secret_ref="polyaxon-secret",
            polyaxon_agent_secret_ref="polyaxon-agent",
            api_host="localhost",
            api_version="v1",
            run_instance="foo.bar.runs.run_uuid",
        )
        assert len(env_vars) == 13
        # TODO: Remove in v1.2 Compatibility API_HOST
        # assert len(env_vars) == 12
        env_var_names = [env_var.name for env_var in env_vars]
        assert POLYAXON_KEYS_K8S_POD_ID in env_var_names
        assert POLYAXON_KEYS_K8S_NAMESPACE in env_var_names
        assert POLYAXON_KEYS_HOST in env_var_names
        assert POLYAXON_KEYS_IS_MANAGED in env_var_names
        assert POLYAXON_KEYS_API_VERSION in env_var_names
        assert POLYAXON_KEYS_HEADER in env_var_names
        assert POLYAXON_KEYS_HEADER_SERVICE in env_var_names
        assert POLYAXON_KEYS_SECRET_KEY in env_var_names
        assert POLYAXON_KEYS_AUTH_TOKEN in env_var_names
        assert POLYAXON_KEYS_AUTHENTICATION_TYPE in env_var_names
        assert POLYAXON_KEYS_K8S_POD_ID in env_var_names
        assert POLYAXON_KEYS_RUN_INSTANCE in env_var_names
    def test_get_service_env_vars(self):
        # Call with default
        env_vars = self.converter.get_service_env_vars(service_header=None)
        assert env_vars == get_service_env_vars(
            header=PolyaxonServiceHeaders.SERVICE,
            service_header=None,
            authentication_type=None,
            include_secret_key=False,
            include_internal_token=False,
            include_agent_token=False,
            polyaxon_default_secret_ref=settings.AGENT_CONFIG.app_secret_name,
            polyaxon_agent_secret_ref=settings.AGENT_CONFIG.agent_secret_name,
            api_host=settings.CLIENT_CONFIG.host,
            api_version=VERSION_V1,
            run_instance=self.converter.run_instance,
        )

        self.converter.internal_auth = True
        env_vars = self.converter.get_service_env_vars(
            service_header="sa-foo",
            header="header-foo",
            include_secret_key=True,
            include_internal_token=True,
            include_agent_token=False,
            authentication_type="internal",
        )
        assert env_vars == get_service_env_vars(
            header="header-foo",
            service_header="sa-foo",
            authentication_type="internal",
            include_secret_key=True,
            include_internal_token=True,
            include_agent_token=False,
            polyaxon_default_secret_ref=settings.AGENT_CONFIG.app_secret_name,
            polyaxon_agent_secret_ref=settings.AGENT_CONFIG.agent_secret_name,
            api_host=settings.CLIENT_CONFIG.host,
            api_version=VERSION_V1,
            run_instance=self.converter.run_instance,
        )

        self.converter.internal_auth = False
        env_vars = self.converter.get_service_env_vars(
            service_header="sa-foo",
            header="header-foo",
            authentication_type="internal",
            include_secret_key=False,
            include_internal_token=False,
            include_agent_token=True,
        )
        assert env_vars == get_service_env_vars(
            service_header="sa-foo",
            header="header-foo",
            authentication_type="internal",
            include_secret_key=False,
            include_internal_token=False,
            include_agent_token=True,
            polyaxon_default_secret_ref=settings.AGENT_CONFIG.app_secret_name,
            polyaxon_agent_secret_ref=settings.AGENT_CONFIG.agent_secret_name,
            api_host=settings.CLIENT_CONFIG.host,
            api_version=VERSION_V1,
            run_instance=self.converter.run_instance,
        )
        env_vars = self.converter.get_service_env_vars(
            service_header="sa-foo",
            header="header-foo",
            authentication_type="internal",
            include_secret_key=False,
            include_internal_token=False,
            include_agent_token=True,
            external_host=True,
        )
        # Default platform host
        assert env_vars == get_service_env_vars(
            service_header="sa-foo",
            header="header-foo",
            authentication_type="internal",
            include_secret_key=False,
            include_internal_token=False,
            include_agent_token=True,
            polyaxon_default_secret_ref=settings.AGENT_CONFIG.app_secret_name,
            polyaxon_agent_secret_ref=settings.AGENT_CONFIG.agent_secret_name,
            api_host=settings.CLIENT_CONFIG.host,
            api_version=VERSION_V1,
            run_instance=self.converter.run_instance,
        )
        # Setting an env var for the POLYAXON_KEYS_PLATFORM_HOST
        current = os.environ.get(POLYAXON_KEYS_PLATFORM_HOST)
        os.environ[POLYAXON_KEYS_PLATFORM_HOST] = "foo"
        env_vars = self.converter.get_service_env_vars(
            service_header="sa-foo",
            header="header-foo",
            authentication_type="internal",
            include_secret_key=False,
            include_internal_token=False,
            include_agent_token=True,
            external_host=True,
        )
        assert env_vars == get_service_env_vars(
            service_header="sa-foo",
            header="header-foo",
            authentication_type="internal",
            include_secret_key=False,
            include_internal_token=False,
            include_agent_token=True,
            polyaxon_default_secret_ref=settings.AGENT_CONFIG.app_secret_name,
            polyaxon_agent_secret_ref=settings.AGENT_CONFIG.agent_secret_name,
            api_host="foo",
            api_version=VERSION_V1,
            run_instance=self.converter.run_instance,
        )
        if current:
            os.environ[POLYAXON_KEYS_PLATFORM_HOST] = current
        else:
            del os.environ[POLYAXON_KEYS_PLATFORM_HOST]

        with self.assertRaises(PolypodException):
            self.converter.get_service_env_vars(
                service_header="sa-foo",
                header="header-foo",
                include_secret_key=False,
                include_internal_token=True,
                include_agent_token=True,
                authentication_type="internal",
            )
    def test_get_polyaxon_sidecar_service_env_vars(self):
        self.converter.internal_auth = True
        env_vars = self.converter.get_polyaxon_sidecar_service_env_vars()
        assert env_vars == get_service_env_vars(
            header=PolyaxonServiceHeaders.SERVICE,
            service_header=PolyaxonServices.SIDECAR,
            authentication_type=AuthenticationTypes.TOKEN,
            include_secret_key=False,
            include_internal_token=False,
            include_agent_token=False,
            polyaxon_default_secret_ref=settings.AGENT_CONFIG.app_secret_name,
            polyaxon_agent_secret_ref=settings.AGENT_CONFIG.agent_secret_name,
            api_host=settings.CLIENT_CONFIG.host,
            api_version=VERSION_V1,
            run_instance=self.converter.run_instance,
        )

        self.converter.internal_auth = False
        env_vars = self.converter.get_polyaxon_sidecar_service_env_vars()
        assert env_vars == get_service_env_vars(
            header=PolyaxonServiceHeaders.SERVICE,
            service_header=PolyaxonServices.SIDECAR,
            authentication_type=AuthenticationTypes.TOKEN,
            include_secret_key=False,
            include_internal_token=False,
            include_agent_token=False,
            polyaxon_default_secret_ref=settings.AGENT_CONFIG.app_secret_name,
            polyaxon_agent_secret_ref=settings.AGENT_CONFIG.agent_secret_name,
            api_host=settings.CLIENT_CONFIG.host,
            api_version=VERSION_V1,
            run_instance=self.converter.run_instance,
        )
        env_vars = self.converter.get_polyaxon_sidecar_service_env_vars(
            external_host=True)
        # Default platform host
        assert env_vars == get_service_env_vars(
            header=PolyaxonServiceHeaders.SERVICE,
            service_header=PolyaxonServices.SIDECAR,
            authentication_type=AuthenticationTypes.TOKEN,
            include_secret_key=False,
            include_internal_token=False,
            include_agent_token=False,
            polyaxon_default_secret_ref=settings.AGENT_CONFIG.app_secret_name,
            polyaxon_agent_secret_ref=settings.AGENT_CONFIG.agent_secret_name,
            api_host=settings.CLIENT_CONFIG.host,
            api_version=VERSION_V1,
            run_instance=self.converter.run_instance,
        )
        # Setting an env var for the POLYAXON_KEYS_PLATFORM_HOST
        current = os.environ.get(POLYAXON_KEYS_PLATFORM_HOST)
        os.environ[POLYAXON_KEYS_PLATFORM_HOST] = "foo"
        env_vars = self.converter.get_polyaxon_sidecar_service_env_vars(
            external_host=True)
        assert env_vars == get_service_env_vars(
            header=PolyaxonServiceHeaders.SERVICE,
            service_header=PolyaxonServices.SIDECAR,
            authentication_type=AuthenticationTypes.TOKEN,
            include_secret_key=False,
            include_internal_token=False,
            include_agent_token=False,
            polyaxon_default_secret_ref=settings.AGENT_CONFIG.app_secret_name,
            polyaxon_agent_secret_ref=settings.AGENT_CONFIG.agent_secret_name,
            api_host="foo",
            api_version=VERSION_V1,
            run_instance=self.converter.run_instance,
        )
        if current:
            os.environ[POLYAXON_KEYS_PLATFORM_HOST] = current
        else:
            del os.environ[POLYAXON_KEYS_PLATFORM_HOST]