<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Jun 7, 2017, at 7:20 AM, Emilien Macchi <<a href="mailto:emilien@redhat.com" class="">emilien@redhat.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><span style="font-family: BitstreamVeraSansMono-Roman; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">On Tue, Jun 6, 2017 at 6:08 PM, Emilien Macchi <</span><a href="mailto:emilien@redhat.com" style="font-family: BitstreamVeraSansMono-Roman; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" class="">emilien@redhat.com</a><span style="font-family: BitstreamVeraSansMono-Roman; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">> wrote:</span><br style="font-family: BitstreamVeraSansMono-Roman; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><blockquote type="cite" style="font-family: BitstreamVeraSansMono-Roman; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" class="">Following-up the session that we had in Boston:<br class=""><a href="https://etherpad.openstack.org/p/BOS-forum-future-of-configuration-management" class="">https://etherpad.openstack.org/p/BOS-forum-future-of-configuration-management</a><br class=""><br class="">Here's an update on where we are and what is being done.<br class=""><br class=""><br class="">== Machine Readable Sample Config<br class=""><br class="">Ben's spec has been merged: https://review.openstack.org/#/c/440835/<br class="">And also the code which implements it: https://review.openstack.org/#/c/451081/<br class="">He's now working on the documentation on how to use the feature.<br class=""><br class="">$ oslo-config-generator --namespace keystone --formal yaml > keystone.yaml<br class=""><br class="">Here's an example of the output for Keystone config: https://clbin.com/EAfFM<br class="">This feature was asked at the PTG, and it's already done!<br class=""><br class=""><br class="">== Pluggable drivers for oslo.config<br class=""><br class="">Doug's spec has been well written and the feedback from Summit and the<br class="">review was taken in account: https://review.openstack.org/#/c/454897/<br class="">It's now paused because we think we could use confd (with etcd driver)<br class="">to generate configuration files.<br class=""><br class="">Imagine the work done by Ben in Machine Readable Sample Config, that<br class="">would allow us to generate Confd templates for all services (Keystone,<br class="">Nova, etc) via a tool provided in oslo.config with all the options<br class="">available for a namespace.<br class=""></blockquote><br style="font-family: BitstreamVeraSansMono-Roman; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: BitstreamVeraSansMono-Roman; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">I'm also wondering if we could use oslo-config-generate directly to</span><br style="font-family: BitstreamVeraSansMono-Roman; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: BitstreamVeraSansMono-Roman; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">generate confd templates, with a new format. So we would have ini,</span><br style="font-family: BitstreamVeraSansMono-Roman; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: BitstreamVeraSansMono-Roman; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">yaml, json and confd.</span><br style="font-family: BitstreamVeraSansMono-Roman; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: BitstreamVeraSansMono-Roman; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">"confd" format would be useful when building rpms that we ship in containers.</span><br style="font-family: BitstreamVeraSansMono-Roman; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: BitstreamVeraSansMono-Roman; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">"yaml" format would be useful for installers to expose the options</span><br style="font-family: BitstreamVeraSansMono-Roman; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: BitstreamVeraSansMono-Roman; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">directly to the User Interface, so we know which params OpenStack</span><br style="font-family: BitstreamVeraSansMono-Roman; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: BitstreamVeraSansMono-Roman; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">provide and we could re-use the data to push it into etcd.</span><br style="font-family: BitstreamVeraSansMono-Roman; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br style="font-family: BitstreamVeraSansMono-Roman; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: BitstreamVeraSansMono-Roman; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">Would it make sense?</span><br style="font-family: BitstreamVeraSansMono-Roman; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""></div></blockquote><div><br class=""></div><div>I did think about making oslo-config-generator also take the YAML file as input instead of scanning plugins, and then including all the output formats in the single command. I haven’t looked to see how much extra complexity that would add.</div><br class=""><blockquote type="cite" class=""><div class=""><br style="font-family: BitstreamVeraSansMono-Roman; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><blockquote type="cite" style="font-family: BitstreamVeraSansMono-Roman; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" class="">We could have packaging builds (e.g. RDO distgit) using the tooling<br class="">when building packages so we could ship confd templates in addition of<br class="">ini configuration files.<br class="">When services would start (e.g. in containers), confd would generate<br class="">configuration files from the templates that is part of the container,<br class="">and read the values from etcd.<br class=""><br class="">The benefit of doing this, is that a very little work is required in<br class="">oslo.config to make this happen (only a tool to generate confd<br class="">templates). It could be a first iteration.<br class="">Another benefit is that confd will generate a configuration file when<br class="">the application will start. So if etcd is down *after* the app<br class="">startup, it shouldn't break the service restart if we don't ask confd<br class="">to re-generate the config. It's good for operators who were concerned<br class="">about the fact the infrastructure would rely on etcd. In that case, we<br class="">would only need etcd at the initial deployment (and during lifecycle<br class="">actions like upgrades, etc).<br class=""><br class="">The downside is that in the case of containers, they would still have<br class="">a configuration file within the container, and the whole goal of this<br class="">feature was to externalize configuration data and stop having<br class="">configuration files.<br class=""><br class=""><br class="">== What's next<br class=""><br class="">I see 2 short-term actions that we can work on:<br class=""><br class="">1) Decide if whether or not confd solution would be acceptable for a<br class="">start. I'm asking Kolla, TripleO, Helm, Ansible projects if they would<br class="">be willing to use this feature. I'm also asking operators to give<br class="">feedback on it.<br class=""><br class="">2) Investigate how to expose parameters generated by Ben's work on<br class="">Machine Readable Sample Config to the users (without having to<br class="">manually maintain all options) - I think this has to be solved on the<br class="">installers side, but I might be wrong; and also investigate how to<br class="">populate parameters data into etcd. This tool could be provided by<br class="">oslo.config probably.<br class=""><br class=""><br class=""><br class="">Any feedback from folks working on installers or from operators would<br class="">be more than welcome!<br class=""><br class="">Thanks,<br class="">--<br class="">Emilien Macchi<br class=""></blockquote><br style="font-family: BitstreamVeraSansMono-Roman; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br style="font-family: BitstreamVeraSansMono-Roman; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br style="font-family: BitstreamVeraSansMono-Roman; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: BitstreamVeraSansMono-Roman; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">--<span class="Apple-converted-space"> </span></span><br style="font-family: BitstreamVeraSansMono-Roman; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: BitstreamVeraSansMono-Roman; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">Emilien Macchi</span><br style="font-family: BitstreamVeraSansMono-Roman; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br style="font-family: BitstreamVeraSansMono-Roman; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: BitstreamVeraSansMono-Roman; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">__________________________________________________________________________</span><br style="font-family: BitstreamVeraSansMono-Roman; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: BitstreamVeraSansMono-Roman; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">OpenStack Development Mailing List (not for usage questions)</span><br style="font-family: BitstreamVeraSansMono-Roman; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: BitstreamVeraSansMono-Roman; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">Unsubscribe:<span class="Apple-converted-space"> </span></span><a href="mailto:OpenStack-dev-request@lists.openstack.org" style="font-family: BitstreamVeraSansMono-Roman; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" class="">OpenStack-dev-request@lists.openstack.org</a><span style="font-family: BitstreamVeraSansMono-Roman; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">?subject:unsubscribe</span><br style="font-family: BitstreamVeraSansMono-Roman; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" style="font-family: BitstreamVeraSansMono-Roman; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" class="">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a></div></blockquote></div><br class=""></body></html>