Ejemplo n.º 1
0
 def __init__(self, absl_flags: Mapping[str, Any] = None):
     if absl_flags is not None:
         for key in absl_flags:
             setattr(self, key, absl_flags[key])
     # API managers
     self.k8s_api_manager = k8s.KubernetesApiManager(self.kube_context)
     self.gcp_api_manager = gcp.api.GcpApiManager()
     self.td = traffic_director.TrafficDirectorManager(
         self.gcp_api_manager,
         self.project,
         resource_prefix=self.resource_prefix,
         resource_suffix=(self.resource_suffix or ""),
         network=self.network,
     )
     # Kubernetes namespace
     self.k8s_namespace = k8s.KubernetesNamespace(self.k8s_api_manager,
                                                  self.resource_prefix)
     # Kubernetes Test Client
     self.test_client_runner = client_app.KubernetesClientRunner(
         self.k8s_namespace,
         deployment_name=self.client_name,
         image_name=self.client_image,
         gcp_project=self.project,
         gcp_api_manager=self.gcp_api_manager,
         gcp_service_account=self.gcp_service_account,
         td_bootstrap_image=self.td_bootstrap_image,
         network=self.network,
         debug_use_port_forwarding=self.debug_use_port_forwarding,
         stats_port=self.client_port,
         reuse_namespace=True)
     # Kubernetes Test Servers
     self.test_server_runner = server_app.KubernetesServerRunner(
         self.k8s_namespace,
         deployment_name=self.server_name,
         image_name=self.server_image,
         gcp_project=self.project,
         gcp_api_manager=self.gcp_api_manager,
         gcp_service_account=self.gcp_service_account,
         td_bootstrap_image=self.td_bootstrap_image,
         network=self.network)
     self.test_server_alternative_runner = server_app.KubernetesServerRunner(
         self.k8s_namespace,
         deployment_name=self.server_name + '-alternative',
         image_name=self.server_image,
         gcp_project=self.project,
         gcp_api_manager=self.gcp_api_manager,
         gcp_service_account=self.gcp_service_account,
         td_bootstrap_image=self.td_bootstrap_image,
         network=self.network,
         reuse_namespace=True)
     logging.info('Strategy of GCP resources management: %s', self.strategy)
Ejemplo n.º 2
0
    def setUp(self):
        super().setUp()

        # Traffic Director Configuration
        self.td = traffic_director.TrafficDirectorManager(
            self.gcp_api_manager,
            project=self.project,
            resource_prefix=self.namespace,
            network=self.network)

        # Test Server Runner
        self.server_runner = server_app.KubernetesServerRunner(
            k8s.KubernetesNamespace(self.k8s_api_manager,
                                    self.server_namespace),
            deployment_name=self.server_name,
            image_name=self.server_image,
            gcp_service_account=self.gcp_service_account,
            td_bootstrap_image=self.td_bootstrap_image,
            xds_server_uri=self.xds_server_uri,
            network=self.network)

        # Test Client Runner
        self.client_runner = client_app.KubernetesClientRunner(
            k8s.KubernetesNamespace(self.k8s_api_manager,
                                    self.client_namespace),
            deployment_name=self.client_name,
            image_name=self.client_image,
            gcp_service_account=self.gcp_service_account,
            td_bootstrap_image=self.td_bootstrap_image,
            xds_server_uri=self.xds_server_uri,
            network=self.network,
            debug_use_port_forwarding=self.debug_use_port_forwarding,
            stats_port=self.client_port,
            reuse_namespace=self.server_namespace == self.client_namespace)
Ejemplo n.º 3
0
def main(argv):
    if len(argv) > 1:
        raise app.UsageError('Too many command-line arguments.')

    # Base namespace
    namespace = xds_flags.NAMESPACE.value
    server_namespace = namespace

    runner_kwargs = dict(
        deployment_name=xds_flags.SERVER_NAME.value,
        image_name=xds_k8s_flags.SERVER_IMAGE.value,
        gcp_service_account=xds_k8s_flags.GCP_SERVICE_ACCOUNT.value,
        network=xds_flags.NETWORK.value,
        reuse_namespace=_REUSE_NAMESPACE.value)

    if _SECURE.value:
        runner_kwargs.update(
            td_bootstrap_image=xds_k8s_flags.TD_BOOTSTRAP_IMAGE.value,
            deployment_template='server-secure.deployment.yaml')

    k8s_api_manager = k8s.KubernetesApiManager(
        xds_k8s_flags.KUBE_CONTEXT.value)
    server_runner = server_app.KubernetesServerRunner(
        k8s.KubernetesNamespace(k8s_api_manager, server_namespace),
        **runner_kwargs)

    if _CMD.value == 'run':
        logger.info('Run server, secure_mode=%s', _SECURE.value)
        server_runner.run(test_port=xds_flags.SERVER_PORT.value,
                          secure_mode=_SECURE.value)

    elif _CMD.value == 'cleanup':
        logger.info('Cleanup server')
        server_runner.cleanup(force=True,
                              force_namespace=_CLEANUP_NAMESPACE.value)
Ejemplo n.º 4
0
 def setUp(self):
     super().setUp()
     self.alternate_server_runner = server_app.KubernetesServerRunner(
         k8s.KubernetesNamespace(self.k8s_api_manager,
                                 self.server_namespace),
         deployment_name=self.server_name + '-alt',
         image_name=self.server_image,
         gcp_service_account=self.gcp_service_account,
         td_bootstrap_image=self.td_bootstrap_image,
         gcp_project=self.project,
         gcp_api_manager=self.gcp_api_manager,
         xds_server_uri=self.xds_server_uri,
         network=self.network,
         debug_use_port_forwarding=self.debug_use_port_forwarding,
         reuse_namespace=True)
Ejemplo n.º 5
0
    def setUp(self):
        super().setUp()

        # Traffic Director Configuration
        self.td = traffic_director.TrafficDirectorSecureManager(
            self.gcp_api_manager,
            project=self.project,
            resource_prefix=self.namespace,
            network=self.network)

        # Ensures the firewall exist
        if self.ensure_firewall:
            self.td.create_firewall_rule(
                allowed_ports=self.firewall_allowed_ports)

        # Test Server Runner
        self.server_runner = server_app.KubernetesServerRunner(
            k8s.KubernetesNamespace(self.k8s_api_manager,
                                    self.server_namespace),
            deployment_name=self.server_name,
            image_name=self.server_image,
            td_bootstrap_image=self.td_bootstrap_image,
            gcp_project=self.project,
            gcp_api_manager=self.gcp_api_manager,
            gcp_service_account=self.gcp_service_account,
            network=self.network,
            xds_server_uri=self.xds_server_uri,
            deployment_template='server-secure.deployment.yaml',
            debug_use_port_forwarding=self.debug_use_port_forwarding)

        # Test Client Runner
        self.client_runner = client_app.KubernetesClientRunner(
            k8s.KubernetesNamespace(self.k8s_api_manager,
                                    self.client_namespace),
            deployment_name=self.client_name,
            image_name=self.client_image,
            td_bootstrap_image=self.td_bootstrap_image,
            gcp_project=self.project,
            gcp_api_manager=self.gcp_api_manager,
            gcp_service_account=self.gcp_service_account,
            xds_server_uri=self.xds_server_uri,
            network=self.network,
            deployment_template='client-secure.deployment.yaml',
            stats_port=self.client_port,
            reuse_namespace=self.server_namespace == self.client_namespace,
            debug_use_port_forwarding=self.debug_use_port_forwarding)
Ejemplo n.º 6
0
 def __init__(self, absl_flags: Mapping[str, Any] = None):
     if absl_flags is not None:
         for key in absl_flags:
             setattr(self, key, absl_flags[key])
     # Pick a client_namespace_suffix if not set
     if self.resource_suffix is None:
         self.resource_suffix = ""
     else:
         raise NotImplementedError(
             'Predefined resource_suffix is not supported for UrlMap tests')
     logging.info('GcpResourceManager: resource prefix=%s, suffix=%s',
                  self.resource_prefix, self.resource_suffix)
     # API managers
     self.k8s_api_manager = k8s.KubernetesApiManager(self.kube_context)
     self.gcp_api_manager = gcp.api.GcpApiManager()
     self.td = traffic_director.TrafficDirectorManager(
         self.gcp_api_manager,
         self.project,
         resource_prefix=self.resource_prefix,
         resource_suffix=(self.resource_suffix or ""),
         network=self.network,
         compute_api_version=self.compute_api_version,
     )
     # Kubernetes namespace
     self.k8s_namespace = k8s.KubernetesNamespace(self.k8s_api_manager,
                                                  self.resource_prefix)
     # Kubernetes Test Servers
     self.test_server_runner = server_app.KubernetesServerRunner(
         self.k8s_namespace,
         deployment_name=self.server_name,
         image_name=self.server_image,
         gcp_project=self.project,
         gcp_api_manager=self.gcp_api_manager,
         gcp_service_account=self.gcp_service_account,
         td_bootstrap_image=self.td_bootstrap_image,
         xds_server_uri=self.xds_server_uri,
         network=self.network,
         enable_workload_identity=self.enable_workload_identity)
     self.test_server_alternative_runner = server_app.KubernetesServerRunner(
         self.k8s_namespace,
         deployment_name=self.server_name + '-alternative',
         image_name=self.server_image,
         gcp_project=self.project,
         gcp_api_manager=self.gcp_api_manager,
         gcp_service_account=self.gcp_service_account,
         td_bootstrap_image=self.td_bootstrap_image,
         xds_server_uri=self.xds_server_uri,
         network=self.network,
         enable_workload_identity=self.enable_workload_identity,
         reuse_namespace=True)
     self.test_server_affinity_runner = server_app.KubernetesServerRunner(
         self.k8s_namespace,
         deployment_name=self.server_name + '-affinity',
         image_name=self.server_image,
         gcp_project=self.project,
         gcp_api_manager=self.gcp_api_manager,
         gcp_service_account=self.gcp_service_account,
         td_bootstrap_image=self.td_bootstrap_image,
         xds_server_uri=self.xds_server_uri,
         network=self.network,
         enable_workload_identity=self.enable_workload_identity,
         reuse_namespace=True)
     logging.info('Strategy of GCP resources management: %s', self.strategy)