<div dir="ltr"><div>I like this concept. I wonder if the base64 encoding is really necessary. <br><br>Here's what our internal tool reads. I would love to see something that could work in both environments with very little adjustment.<br><br></div>This example uses openstack, thus the 'user-data-files' is unnecessary, and the main resources might look different also.<br><br>{<br>    "resources": [<br>        {<br>            "name": "openshift-node1",<br>            "count": "1",<br>            "flavor": "m1.medium",<br>            "image": "rhel-guest-image-7.1-20150224.0.x86_64",<br>            "metadata": {<br>                "product_type": "openshift",<br>                "deployment_type": "openshift-enterprise",<br>                "ansible_sudo": "false",<br>                "ansible_ssh_user": "root",<br>                "openshift_override_hostname_check": "true",<br>                "openshift_node_labels": "{'region': 'primary', 'zone': 'east'}",<br>                "openshift_hostname": "__IP__",<br>                "openshift_public_hostname": "__IP__",<br>                "openshift_set_hostname": "true",<br>                "openshift_docker_additional_registries": "<a href="http://my.dockerregistry.com:8888">my.dockerregistry.com:8888</a>",<br>                "openshift_docker_insecure_registries": "<a href="http://my.dockerregistry.com:8888">my.dockerregistry.com:8888</a>",<br>                "ansible-group": ["nodes", "OSEv3"]<br>            }<br>        },<br>        {<br>            "name": "openshift-node2",<br>            "count": "1",<br>            "flavor": "m1.medium",<br>            "image": "rhel-guest-image-7.1-20150224.0.x86_64",<br>            "metadata": {<br>                "product_type": "openshift",<br>                "deployment_type": "openshift-enterprise",<br>                "ansible_sudo": "false",<br>                "ansible_ssh_user": "root",<br>                "openshift_override_hostname_check": "true",<br>                "openshift_node_labels": "{'region': 'primary', 'zone': 'west'}",<br>                "openshift_hostname": "__IP__",<br>                "openshift_public_hostname": "__IP__",<br>                "openshift_set_hostname": "true",<br>                "openshift_docker_additional_registries": "<a href="http://my.dockerregistry.com:8888">my.dockerregistry.com:8888</a>",<br>                "openshift_docker_insecure_registries": "<a href="http://my.dockerregistry.com:8888">my.dockerregistry.com:8888</a>",<br>                "ansible-group": ["nodes", "OSEv3", "repo_host"]<br>            }<br>        },<br>        {<br>            "name": "openshift-master",<br>            "count": "1",<br>            "flavor": "m1.large",<br>            "image": "rhel-guest-image-7.1-20150224.0.x86_64",<br>            "metadata": {<br>                "product_type": "openshift",<br>                "deployment_type": "openshift-enterprise",<br>                "ansible_sudo": "false",<br>                "ansible_ssh_user": "root",<br>                "openshift_override_hostname_check": "true",<br>                "openshift_node_labels": "{'region': 'infra', 'zone': 'default'}",<br>                "openshift_hostname": "__IP__",<br>                "openshift_public_hostname": "__IP__",<br>                "openshift_set_hostname": "true",<br>                "openshift_docker_additional_registries": "<a href="http://my.dockerregistry.com:8888">my.dockerregistry.com:8888</a>",<br>                "openshift_docker_insecure_registries": "<a href="http://my.dockerregistry.com:8888">my.dockerregistry.com:8888</a>",<br>                "ansible-group": ["masters", "nodes", "OSEv3"]<br>            }<br>        }<br>   ]<br>}<br><br><div>Cheers,<br><br></div><div>herlo<br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, May 18, 2016 at 10:40 AM, Colin Walters <span dir="ltr"><<a href="mailto:walters@verbum.org" target="_blank">walters@verbum.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">1) Public source code<br>
2) Arbitrary metadata (could be JSON or just a blob) like /Node/get/?key=blah&metadata=<base64 encoded json><br>
   Then a new /InventoryExt verb that returns JSON like:<br>
<br>
[<br>
    { "name": "n49.pufty", "ssid": "abcde", "metadata": "<base64 encoded json>" },<br>
    { "name": "a29.pufty", "ssid": "abcde", "metadata": "<base64 encoded json>" }<br>
]<br>
<br>
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<br>
_______________________________________________<br>
Ci-users mailing list<br>
<a href="mailto:Ci-users@centos.org">Ci-users@centos.org</a><br>
<a href="https://lists.centos.org/mailman/listinfo/ci-users" rel="noreferrer" target="_blank">https://lists.centos.org/mailman/listinfo/ci-users</a><br>
</blockquote></div><br></div>