I like this concept. I wonder if the base64 encoding is really necessary.

Here's what our internal tool reads. I would love to see something that could work in both environments with very little adjustment.

This example uses openstack, thus the 'user-data-files' is unnecessary, and the main resources might look different also.

{
    "resources": [
        {
            "name": "openshift-node1",
            "count": "1",
            "flavor": "m1.medium",
            "image": "rhel-guest-image-7.1-20150224.0.x86_64",
            "metadata": {
                "product_type": "openshift",
                "deployment_type": "openshift-enterprise",
                "ansible_sudo": "false",
                "ansible_ssh_user": "root",
                "openshift_override_hostname_check": "true",
                "openshift_node_labels": "{'region': 'primary', 'zone': 'east'}",
                "openshift_hostname": "__IP__",
                "openshift_public_hostname": "__IP__",
                "openshift_set_hostname": "true",
                "openshift_docker_additional_registries": "my.dockerregistry.com:8888",
                "openshift_docker_insecure_registries": "my.dockerregistry.com:8888",
                "ansible-group": ["nodes", "OSEv3"]
            }
        },
        {
            "name": "openshift-node2",
            "count": "1",
            "flavor": "m1.medium",
            "image": "rhel-guest-image-7.1-20150224.0.x86_64",
            "metadata": {
                "product_type": "openshift",
                "deployment_type": "openshift-enterprise",
                "ansible_sudo": "false",
                "ansible_ssh_user": "root",
                "openshift_override_hostname_check": "true",
                "openshift_node_labels": "{'region': 'primary', 'zone': 'west'}",
                "openshift_hostname": "__IP__",
                "openshift_public_hostname": "__IP__",
                "openshift_set_hostname": "true",
                "openshift_docker_additional_registries": "my.dockerregistry.com:8888",
                "openshift_docker_insecure_registries": "my.dockerregistry.com:8888",
                "ansible-group": ["nodes", "OSEv3", "repo_host"]
            }
        },
        {
            "name": "openshift-master",
            "count": "1",
            "flavor": "m1.large",
            "image": "rhel-guest-image-7.1-20150224.0.x86_64",
            "metadata": {
                "product_type": "openshift",
                "deployment_type": "openshift-enterprise",
                "ansible_sudo": "false",
                "ansible_ssh_user": "root",
                "openshift_override_hostname_check": "true",
                "openshift_node_labels": "{'region': 'infra', 'zone': 'default'}",
                "openshift_hostname": "__IP__",
                "openshift_public_hostname": "__IP__",
                "openshift_set_hostname": "true",
                "openshift_docker_additional_registries": "my.dockerregistry.com:8888",
                "openshift_docker_insecure_registries": "my.dockerregistry.com:8888",
                "ansible-group": ["masters", "nodes", "OSEv3"]
            }
        }
   ]
}

Cheers,

herlo

On Wed, May 18, 2016 at 10:40 AM, Colin Walters <walters@verbum.org> wrote:
1) Public source code
2) Arbitrary metadata (could be JSON or just a blob) like /Node/get/?key=blah&metadata=<base64 encoded json>
   Then a new /InventoryExt verb that returns JSON like:

[
    { "name": "n49.pufty", "ssid": "abcde", "metadata": "<base64 encoded json>" },
    { "name": "a29.pufty", "ssid": "abcde", "metadata": "<base64 encoded json>" }
]

3) Also add a new option to /get/  named "longpoll" which means the machine is automatically deallocated when the requester's TCP connection closes.  This would help ensure that e.g. cancelling the job or a Jenkins restart etc. automatically deallocated the machine
_______________________________________________
Ci-users mailing list
Ci-users@centos.org
https://lists.centos.org/mailman/listinfo/ci-users