Skip to content
This repository was archived by the owner on Oct 24, 2020. It is now read-only.

Allow steps to have a load-balancer in front of them #23

Open
bbangert opened this issue Mar 9, 2017 · 0 comments
Open

Allow steps to have a load-balancer in front of them #23

bbangert opened this issue Mar 9, 2017 · 0 comments

Comments

@bbangert
Copy link
Member

bbangert commented Mar 9, 2017

To reach parity with loads-broker, a step should be able to request a load-balancer in front of it, along with the path/port to use for the ELB health-check.

This is somewhat more involved than loads-broker, but will allow much greater control over how traffic is sent to the instances through the ELB rather than relying on DNS round-robin which loads-broker relied on by manipulating the DNS entries for a name.

Instead of letting someone create their own dns name as loads-broker did, the thought here is that when requesting an ELB, you provide an environment variable alias it will get.

For example, consider the following step in a test plan:

{
    "name": "TestCluster",
    "instance_count": 1,
    "instance_type": "t2.medium",
    "run_max_time": 140,
    "cpu_units": 2048,
    "container_name": "bbangert/pushgo:1.5rc4",
    "port_mapping": "8080:8090,8081:8081,3000:3000,8082:8082",
    "load_balancer": {
        "env_var": "TEST_CLUSTER",
        "ping_path": "/status/health",
        "ping_port": 8080,
        "ping_protocol": "http",
        "listeners": [
            {
                "listen_protocol": "ssl",
                "listen_port": 443,
                "backend_protocol": "tcp",
                "backend_port": 8080
            },
            {
                "listen_protocol": "https",
                "listen_port": 9000,
                "backend_protocol": "http",
                "backend_port": 8090
            }
        ]
    }
}

Then when a later step wants to talk to it, it can use $TEST_CLUSTER to refer to the ELB's DNS name that was assigned.

ardere can create the ELB's it finds in the steps first, then during service creation can associate the load-balancer. Once the ELB is made, we should have its DNS name back to provide to the other steps via environment vars.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant