<div dir="ltr">It would be great if this could be generated as dynamic ansible inventory.  We do this with the output of the node creation.  This way it becomes very easy to use ansible to do any follow on tasks once you have the resources.</div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, May 18, 2016 at 1:04 PM, Clint Savage <span dir="ltr"><<a href="mailto:herlo@redhat.com" target="_blank">herlo@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><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" target="_blank">my.dockerregistry.com:8888</a>",<br>                "openshift_docker_insecure_registries": "<a href="http://my.dockerregistry.com:8888" target="_blank">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" target="_blank">my.dockerregistry.com:8888</a>",<br>                "openshift_docker_insecure_registries": "<a href="http://my.dockerregistry.com:8888" target="_blank">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" target="_blank">my.dockerregistry.com:8888</a>",<br>                "openshift_docker_insecure_registries": "<a href="http://my.dockerregistry.com:8888" target="_blank">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="HOEnZb"><div class="h5"><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" target="_blank">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>
</div></div><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>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr">-== @ri ==-</div></div>
</div>