[openstack-dev] [tc][appcat] The future of the App Catalog

Davanum Srinivas davanum at gmail.com
Mon Mar 13 21:20:10 UTC 2017


Zane,

Sorry for the top post, Can you please submit a TC resolution? I can
help with it as well. Let's test the waters.

Thanks,
Dims

On Mon, Mar 13, 2017 at 5:10 PM, Zane Bitter <zbitter at redhat.com> wrote:
> On 12/03/17 11:30, Clint Byrum wrote:
>>
>> Excerpts from Fox, Kevin M's message of 2017-03-11 21:31:40 +0000:
>>>
>>> No, they are treated as second class citizens. Take Trova again as an
>>> example. The underlying OpenStack infrastructure does not provide a good
>>> security solution for Trove's use case. As its more then just IaaS. So they
>>> have spent years trying to work around it on one way or another, each with
>>> horrible trade offs.
>>>
>>> For example they could fix an issue by:
>>> 1. Run the service vm in the users tenant where it belongs. Though,
>>> currently the user has permissions to reboot the vm, login through the
>>> console and swipe any secrets that are on the vm and make it much harder for
>>> the cloud admin to administer.
>>> 2. Run the vm in a "trove" tenant. This fixes the security issue but
>>> breaks the quota model of OpenStack. Users with special host aggregate
>>> access/flavors can't work with this model.
>>>
>>> For our site, we can't use Trove at all at the moment, even though we
>>> want to. Because option 2 doesn't work for us, and option 1 currently has a
>>> glaring security flaw in it.
>>>
>>> One of the ways I saw Trove try to fix it was to get a feature into Nova
>>> called "Service VM's". VMs owned by the user but not fully controllable by
>>> them but from some other OpenStack service on their behalf. This, IMO is the
>>> right way to solve it. There are a lot of advanced services that need this
>>> functionality. But it seems to have been rejected, as "users don't need
>>> that"... Which is true, only if you only consider the IaaS use case.
>>>
>>
>> You're right. This type of rejection is not O-K IMO, because this is
>> consumers of Nova with a real use case, asking for real features that
>> simply cannot be implemented anywhere except inside Nova. Perhaps the
>> climate has changed, and this effort can be resurrected.
>
>
> I don't believe the climate has changed; there's no reason for it have. Nova
> is still constrained by the size of the core reviewers team, and they've
> been unwilling or unable to take steps (like splitting Nova up into smaller
> chunks) that would increase capacity, so they have to reject as many feature
> requests as possible. Given that the wider community has never had a debate
> about what we're trying to build or for whom, it's perfectly easy to drift
> along thinking that the current priorities are adequate without ever being
> challenged.
>
> Until we have a TC resolution - with the community consensus to back it up -
> that says "the reason for having APIs to your infrastructure is so that
> *applications* can use them and projects must make not being an obstacle to
> this their highest purpose", or "we're building an open source AWS, not a
> free VMWare", or https://www.youtube.com/watch?v=Vhh_GeBPOhs ... until it's
> not possible to say with complete earnestness "OpenStack has VMs, so you can
> run any application on it" then the climate will never change, and we'll
> just keep hearing "I don't need this, so neither should you".
>
>>> The problems of these other OpenStack services are being rejected as
>>> second class problems, not primary ones.
>>>
>>> I'm sure other sites are avoiding other OpenStack advanced services for
>>> similar reasons. its not just that Operators don't want to deploy it, or
>>> that Users are not asking for it.
>>>
>>> Let me try and explain Zane's post in a sligtly different way... maybe
>>> that would help...
>>>
>>> So, say you had an operating system. It had the ability to run arbitrary
>>> programs if the user started an executable via the keyboard/mouse. But had
>>> no ability for an executable to start another executable. How useful would
>>> that OS be? There would be no shell scripts. No non monolithic applications.
>>> It would be sort of functional, but would be hamstrung.
>>>
>>> OpenStack is like that today. Like the DOS operating system. Programs are
>>> expected to be pretty self contained and not really talk back to the
>>> Operating System its running on, nor a way to discover other programs
>>> running on the same system. Nor really for a script running on the Operating
>>> System to start other programs, chaining them together in a way thats more
>>> useful then the sum of their parts. The current view is fine if you need is
>>> just a container to run a traditional OS in. Its not if you are trying to
>>> build an application that spans things.
>>>
>>> There have been several attempts at fixing this, in Heat, in Murano, in
>>> the App Catalog, but plumbing they rely on isn't really supportive of it, as
>>> they believe the use case really is just launching a VM with an OS in it is
>>> really the important thing to do, and the job's done.
>>>
>>> For the Applications Catalog to be successful, it needs the underlying
>>> cloud to have enough functionality among a common set of cloud provided
>>> services to allow applications developers to write cloud software that is
>>> redistributable and consumable by the end user. Its failed because the
>>> infrastructure just isn't there. The other advanced services are suffering
>>> from it too.
>>>
>>
>> I'm not sure I agree. One can very simply inject needed credentials
>> into a running VM and have it interact with the cloud APIs.
>
>
> Demo please!
>
> Most Keystone backends are read-only, you can't even create a new user
> account yourself. It's an admin-only API anyway. The only non-expiring
> credential you even *have*, ignoring the difficulties of getting it to the
> server, is your LDAP password. Would *you* put *your* LDAP password on an
> internet-facing server? I would not.
>
>> However,
>> there is a deficiency that affects all VM users that might make this
>> a more desirable option.
>>
>> There's a lack of a detailed policy management piece. What I'd really
>> like to inject is an API key that can only do the 2 things my app needs
>> (like, scale up load balancer, or allocate and attach a volume to itself).
>> Roles are just too opaque for that to really work well these days.
>
>
> Yes. this is a problem with the default policy - if you have *any* role in a
> project then you get write access to everything in that project. I don't
> know how I can even call this role-based, since everybody has access to
> everything regardless of their roles.
>
> Keystone folks are working on a new global default policy. The new policy
> will require specific reader/writer roles on a project to access any of that
> project's data (I attended the design session and insisted on it). That will
> free up services to create their own limited-scope roles without the
> consequence of opening up full access to every other OpenStack API. e.g.
> it's easy to imagine a magnum-tenant role that has permissions to move
> Neutron ports around but nothing else.
>
> We ultimately need finer-grained authorisation than that - we'll want users
> to be able to specify permissions for particular resources, and since most
> users are not OpenStack projects we'll need them to be able to do it for
> roles (or specific user accounts) that are not predefined in policy.json.
> With the other stuff in place that's at least do-able in individual projects
> though, and if a few projects can agree on a common approach then it could
> easily turn into e.g. an Oslo library, even if it never turns into a
> centralised authorisation service.
>
> That's all entirely dependent on the gatekeepers unblocking us though.
>
> cheers,
> Zane.
>
>
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev



-- 
Davanum Srinivas :: https://twitter.com/dims



More information about the OpenStack-dev mailing list