예제 #1
0
def dd_environment():
    with terraform_run(os.path.join(get_here(), 'terraform')) as outputs:
        kubeconfig = outputs['kubeconfig']['value']
        with ExitStack() as stack:
            ip_ports = [
                stack.enter_context(
                    port_forward(kubeconfig, 'istio-system', deployment, port))
                for (deployment, port) in DEPLOYMENTS
            ]
            instance = {
                'citadel_endpoint':
                'http://{}:{}/metrics'.format(*ip_ports[0]),
                'galley_endpoint': 'http://{}:{}/metrics'.format(*ip_ports[1]),
                'pilot_endpoint': 'http://{}:{}/metrics'.format(*ip_ports[2]),
                'mixer_endpoint': 'http://{}:{}/metrics'.format(*ip_ports[3]),
                'istio_mesh_endpoint':
                'http://{}:{}/metrics'.format(*ip_ports[4]),
            }
            page = 'http://{}:{}/productpage'.format(*ip_ports[5])
            # Check a bit to make sure it's available
            CheckEndpoints([page], wait=5)()
            for _ in range(5):
                # Generate some traffic
                requests.get(page)
            yield instance
예제 #2
0
def dd_environment():
    with terraform_run(os.path.join(get_here(), 'terraform')) as outputs:
        ip = outputs['ip']['value']
        internal_ip = outputs['internal_ip']['value']
        private_key = outputs['ssh_private_key']['value']
        instance = {
            'name': 'test',
            'keystone_server_url': 'http://{}/identity/v3'.format(internal_ip),
            'user': {
                'name': 'admin',
                'password': '******',
                'domain': {
                    'id': 'default'
                }
            },
            'ssl_verify': False,
        }
        with socks_proxy(ip, 'ubuntu', private_key) as socks:
            socks_ip, socks_port = socks
            agent_config = {
                'proxy': {
                    'http': 'socks5://{}:{}'.format(socks_ip, socks_port)
                }
            }
            yield instance, agent_config
def dd_environment():
    with terraform_run(os.path.join(HERE, 'terraform')) as outputs:
        kubeconfig = outputs['kubeconfig']['value']
        with ExitStack() as stack:
            ip_ports = [
                stack.enter_context(
                    port_forward(kubeconfig, 'cilium', 'cilium-operator',
                                 port)) for port in PORTS
            ]

            instances = {
                'instances': [
                    {
                        'agent_endpoint':
                        'http://{}:{}/metrics'.format(*ip_ports[0]),
                        'metrics':
                        ADDL_AGENT_METRICS + AGENT_DEFAULT_METRICS,
                    },
                    {
                        'operator_endpoint':
                        'http://{}:{}/metrics'.format(*ip_ports[1]),
                        'metrics':
                        OPERATOR_METRICS + OPERATOR_AWS_METRICS,
                    },
                ]
            }

            yield instances
예제 #4
0
def dd_environment():
    with terraform_run(os.path.join(get_here(), 'terraform')) as outputs:
        kubeconfig = to_native_string(outputs['kubeconfig']['value'])

        with port_forward(kubeconfig, 'linkerd', 'linkerd-controller', 4191) as (ip, port):
            instance = {
                'prometheus_url': 'http://{}:{}/metrics'.format(ip, port),
                'metrics': [LINKERD_FIXTURE_METRICS],
                'type_overrides': LINKERD_FIXTURE_TYPES,
            }
            yield instance
예제 #5
0
def dd_environment():
    with terraform_run(os.path.join(get_here(), 'terraform')) as outputs:
        ip = outputs['ip']['value']
        private_key = outputs['ssh_private_key']['value']
        with tcp_tunnel(ip, 'oracle', private_key, 1521) as tunnel:
            ip, port = tunnel
            env_instance = {
                'server': '{}:{}'.format(ip, port),
                'user': '******',
                'password': '******',
                'service_name': 'orcl.c.datadog-integrations-lab.internal',
            }
            yield env_instance, E2E_METADATA
예제 #6
0
def dd_environment():
    version = os.environ.get("ISTIO_VERSION")

    with terraform_run(os.path.join(HERE, 'terraform', version)) as outputs:
        kubeconfig = outputs['kubeconfig']['value']
        with ExitStack() as stack:
            if version == '1.5.1':
                istiod_host, istiod_port = stack.enter_context(
                    port_forward(kubeconfig, 'istio-system', 'istiod', 8080))
                instance = {
                    'istiod_endpoint':
                    'http://{}:{}/metrics'.format(istiod_host, istiod_port)
                }

                yield instance
            else:
                ip_ports = [
                    stack.enter_context(
                        port_forward(kubeconfig, 'istio-system', deployment,
                                     port))
                    for (deployment, port) in DEPLOYMENTS_LEGACY
                ]
                instance = {
                    'instances': [
                        {
                            'citadel_endpoint':
                            'http://{}:{}/metrics'.format(*ip_ports[0]),
                            'galley_endpoint':
                            'http://{}:{}/metrics'.format(*ip_ports[1]),
                            'pilot_endpoint':
                            'http://{}:{}/metrics'.format(*ip_ports[2]),
                            'mixer_endpoint':
                            'http://{}:{}/metrics'.format(*ip_ports[3]),
                        },
                        {
                            'istio_mesh_endpoint':
                            'http://{}:{}/metrics'.format(*ip_ports[4])
                        },
                    ]
                }
                page = 'http://{}:{}/productpage'.format(*ip_ports[5])
                # Check a bit to make sure it's available
                CheckEndpoints([page], wait=5)()
                for _ in range(5):
                    # Generate some traffic
                    requests.get(page)
                yield instance