<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jun 8, 2017 at 3:21 PM, Emilien Macchi <span dir="ltr"><<a href="mailto:emilien@redhat.com" target="_blank">emilien@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="gmail-">On Thu, Jun 8, 2017 at 7:34 PM, Lance Bragstad <<a href="mailto:lbragstad@gmail.com">lbragstad@gmail.com</a>> wrote:<br>
> After digging into etcd a bit, one place this might be help deployer<br>
> experience would be the handling of fernet keys for token encryption in<br>
> keystone. Currently, all keys used to encrypt and decrypt tokens are kept on<br>
> disk for each keystone node in the deployment. While simple, it requires<br>
> operators to perform rotation on a single node and then push, or sync, the<br>
> new key set to the rest of the nodes. This must be done in lock step in<br>
> order to prevent early token invalidation and inconsistent token responses.<br>
<br>
</span>This is what we discussed a few months ago :-)<br>
<br>
<a href="http://lists.openstack.org/pipermail/openstack-dev/2017-March/113943.html" rel="noreferrer" target="_blank">http://lists.openstack.org/<wbr>pipermail/openstack-dev/2017-<wbr>March/113943.html</a><br>
<br>
I'm glad it's coming back ;-)<br></blockquote><div><br></div><div>Yep! I've proposed a pretty basic spec to backlog [0] in an effort to capture the discussion. I've also noted the point Kevin brought up about authorization in etcd (thanks, Kevin!)</div><div><br></div><div>If someone feels compelled to take that and run with it, they are more than welcome to.</div><div><br></div><div>[0] <a href="https://review.openstack.org/#/c/472385/">https://review.openstack.org/#/c/472385/</a></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div class="gmail-HOEnZb"><div class="gmail-h5"><br>
> An alternative would be to keep the keys in etcd and make the fernet bits<br>
> pluggable so that it's possible to read keys from disk or etcd (pending<br>
> configuration). The advantage would be that operators could initiate key<br>
> rotations from any keystone node in the deployment (or using etcd directly)<br>
> and not have to worry about distributing the new key set. Since etcd<br>
> associates metadata to the key-value pairs, we might be able to simplify the<br>
> rotation strategy as well.<br>
><br>
> On Thu, Jun 8, 2017 at 11:37 AM, Mike Bayer <<a href="mailto:mbayer@redhat.com">mbayer@redhat.com</a>> wrote:<br>
>><br>
>><br>
>><br>
>> On 06/08/2017 12:47 AM, Joshua Harlow wrote:<br>
>>><br>
>>> So just out of curiosity, but do people really even know what etcd is<br>
>>> good for? I am thinking that there should be some guidance from folks in the<br>
>>> community as to where etcd should be used and where it shouldn't (otherwise<br>
>>> we just all end up in a mess).<br>
>><br>
>><br>
>> So far I've seen a proposal of etcd3 as a replacement for memcached in<br>
>> keystone, and a new dogpile connector was added to oslo.cache to handle<br>
>> referring to etcd3 as a cache backend.  This is a really simplistic /<br>
>> minimal kind of use case for a key-store.<br>
>><br>
>> But, keeping in mind I don't know anything about etcd3 other than "it's<br>
>> another key-store", it's the only database used by Kubernetes as a whole,<br>
>> which suggests it's doing a better job than Redis in terms of "durable".<br>
>> So I wouldn't be surprised if new / existing openstack applications express<br>
>> some gravitational pull towards using it as their own datastore as well.<br>
>> I'll be trying to hang onto the etcd3 track as much as possible so that<br>
>> if/when that happens I still have a job :).<br>
>><br>
>><br>
>><br>
>><br>
>>><br>
>>> Perhaps a good idea to actually give examples of how it should be used,<br>
>>> how it shouldn't be used, what it offers, what it doesn't... Or at least<br>
>>> provide links for people to read up on this.<br>
>>><br>
>>> Thoughts?<br>
>>><br>
>>> Davanum Srinivas wrote:<br>
>>>><br>
>>>> One clarification: Since <a href="https://pypi.python.org/pypi/etcd3gw" rel="noreferrer" target="_blank">https://pypi.python.org/pypi/<wbr>etcd3gw</a> just<br>
>>>> uses the HTTP API (/v3alpha) it will work under both eventlet and<br>
>>>> non-eventlet environments.<br>
>>>><br>
>>>> Thanks,<br>
>>>> Dims<br>
>>>><br>
>>>><br>
>>>> On Wed, Jun 7, 2017 at 6:47 AM, Davanum Srinivas<<a href="mailto:davanum@gmail.com">davanum@gmail.com</a>><br>
>>>> wrote:<br>
>>>>><br>
>>>>> Team,<br>
>>>>><br>
>>>>> Here's the update to the base services resolution from the TC:<br>
>>>>> <a href="https://governance.openstack.org/tc/reference/base-services.html" rel="noreferrer" target="_blank">https://governance.openstack.<wbr>org/tc/reference/base-<wbr>services.html</a><br>
>>>>><br>
>>>>> First request is to Distros, Packagers, Deployers, anyone who<br>
>>>>> installs/configures OpenStack:<br>
>>>>> Please make sure you have latest etcd 3.x available in your<br>
>>>>> environment for Services to use, Fedora already does, we need help in<br>
>>>>> making sure all distros and architectures are covered.<br>
>>>>><br>
>>>>> Any project who want to use etcd v3 API via grpc, please use:<br>
>>>>> <a href="https://pypi.python.org/pypi/etcd3" rel="noreferrer" target="_blank">https://pypi.python.org/pypi/<wbr>etcd3</a> (works only for non-eventlet<br>
>>>>> services)<br>
>>>>><br>
>>>>> Those that depend on eventlet, please use the etcd3 v3alpha HTTP API<br>
>>>>> using:<br>
>>>>> <a href="https://pypi.python.org/pypi/etcd3gw" rel="noreferrer" target="_blank">https://pypi.python.org/pypi/<wbr>etcd3gw</a><br>
>>>>><br>
>>>>> If you use tooz, there are 2 driver choices for you:<br>
>>>>> <a href="https://github.com/openstack/tooz/blob/master/setup.cfg#L29" rel="noreferrer" target="_blank">https://github.com/openstack/<wbr>tooz/blob/master/setup.cfg#L29</a><br>
>>>>> <a href="https://github.com/openstack/tooz/blob/master/setup.cfg#L30" rel="noreferrer" target="_blank">https://github.com/openstack/<wbr>tooz/blob/master/setup.cfg#L30</a><br>
>>>>><br>
>>>>> If you use oslo.cache, there is a driver for you:<br>
>>>>> <a href="https://github.com/openstack/oslo.cache/blob/master/setup.cfg#L33" rel="noreferrer" target="_blank">https://github.com/openstack/<wbr>oslo.cache/blob/master/setup.<wbr>cfg#L33</a><br>
>>>>><br>
>>>>> Devstack installs etcd3 by default and points cinder to it:<br>
>>>>> <a href="http://git.openstack.org/cgit/openstack-dev/devstack/tree/lib/etcd3" rel="noreferrer" target="_blank">http://git.openstack.org/cgit/<wbr>openstack-dev/devstack/tree/<wbr>lib/etcd3</a><br>
>>>>><br>
>>>>> <a href="http://git.openstack.org/cgit/openstack-dev/devstack/tree/lib/cinder#n356" rel="noreferrer" target="_blank">http://git.openstack.org/cgit/<wbr>openstack-dev/devstack/tree/<wbr>lib/cinder#n356</a><br>
>>>>><br>
>>>>> Review in progress for keystone to use etcd3 for caching:<br>
>>>>> <a href="https://review.openstack.org/#/c/469621/" rel="noreferrer" target="_blank">https://review.openstack.org/#<wbr>/c/469621/</a><br>
>>>>><br>
>>>>> Doug is working on proposal(s) for oslo.config to store some<br>
>>>>> configuration in etcd3:<br>
>>>>> <a href="https://review.openstack.org/#/c/454897/" rel="noreferrer" target="_blank">https://review.openstack.org/#<wbr>/c/454897/</a><br>
>>>>><br>
>>>>> So, feel free to turn on / test with etcd3 and report issues.<br>
>>>>><br>
>>>>> Thanks,<br>
>>>>> Dims<br>
>>>>><br>
>>>>> --<br>
>>>>> Davanum Srinivas :: <a href="https://twitter.com/dims" rel="noreferrer" target="_blank">https://twitter.com/dims</a><br>
>>>><br>
>>>><br>
>>>><br>
>>>><br>
>>><br>
>>><br>
>>> ______________________________<wbr>______________________________<wbr>______________<br>
>>> OpenStack Development Mailing List (not for usage questions)<br>
>>> Unsubscribe:<br>
>>> <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.<wbr>openstack.org?subject:<wbr>unsubscribe</a><br>
>>> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/<wbr>cgi-bin/mailman/listinfo/<wbr>openstack-dev</a><br>
>><br>
>><br>
>> ______________________________<wbr>______________________________<wbr>______________<br>
>> OpenStack Development Mailing List (not for usage questions)<br>
>> Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.<wbr>openstack.org?subject:<wbr>unsubscribe</a><br>
>> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/<wbr>cgi-bin/mailman/listinfo/<wbr>openstack-dev</a><br>
><br>
><br>
><br>
> ______________________________<wbr>______________________________<wbr>______________<br>
> OpenStack Development Mailing List (not for usage questions)<br>
> Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.<wbr>openstack.org?subject:<wbr>unsubscribe</a><br>
> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/<wbr>cgi-bin/mailman/listinfo/<wbr>openstack-dev</a><br>
><br>
<br>
<br>
<br>
</div></div><span class="gmail-HOEnZb"><font color="#888888">--<br>
Emilien Macchi<br>
</font></span><div class="gmail-HOEnZb"><div class="gmail-h5"><br>
______________________________<wbr>______________________________<wbr>______________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.<wbr>openstack.org?subject:<wbr>unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/<wbr>cgi-bin/mailman/listinfo/<wbr>openstack-dev</a><br>
</div></div></blockquote></div><br></div></div>