As many of you have found out, I am relatively willing to help people out with Keystone related questions. Here are a couple guidelines. Continue reading
Category Archives: Software
Getting Started with Tripleo
OpenStack is big. I’ve been focused on my little corner of it, Keystone, for a long time. Now, it is time for me to help out with some of the more downstream aspects of configuring RDO deployments. In order to do so, I need to do an RDO deployment. Until recently, this has meant Packstack. However, Packstack really is not meant for production deployments. RDO manager is the right tool for that. So, I am gearing up on RDO manager. The upstream of RDO Manager is TripleO.
Continue reading
Translating Between RDO/RHOS and Upstream OpenStack releases
There is a straight forward mapping between the version numbers used for Red Hat Enterprise Linux OpenStack Platform release numbers, and the upstream and RDO releases of OpenStack. I can never keep them straight. So, I write code.
UPDATE1: missed Juno before…this is why we code review
UPDATE2: had RDO using the version numbers, but it in sync with upstream.
#!/usr/bin/python upstream = ['Austin', 'Bexar', 'Cactus', 'Diablo', 'Essex', 'Folsom', 'Grizzly', 'Havana', 'Icehouse', 'Juno', 'Kilo', 'Liberty', 'Mitaka', 'Newton', 'Ocata', 'Pike', 'Queens', 'Rocky', 'Stein', 'Train', 'Ussuri', 'V','W','X','Y','Z'] for v in range(0, len(upstream) - 3): print "RHOS Version %s = upstream %s" % (v, upstream[v + 3]) |
RHOS Version 0 = upstream Diablo
RHOS Version 1 = upstream Essex
RHOS Version 2 = upstream Folsom
RHOS Version 3 = upstream Grizzly
RHOS Version 4 = upstream Havana
RHOS Version 5 = upstream Icehouse
RHOS Version 6 = upstream Juno
RHOS Version 7 = upstream Kilo
RHOS Version 8 = upstream Liberty
RHOS Version 9 = upstream Mitaka
RHOS Version 10 = upstream Newton
RHOS Version 11 = upstream Ocata
RHOS Version 12 = upstream Pike
RHOS Version 13 = upstream Queens
RHOS Version 14 = upstream Rocky
RHOS Version 15 = upstream Stein
RHOS Version 16 = upstream Train
RHOS Version 17 = upstream Ussuri
RHOS Version 18 = upstream V
RHOS Version 19 = upstream W
RHOS Version 20 = upstream X
RHOS Version 21 = upstream Y
RHOS Version 22 = upstream Z
UPDATE: I’ve edited the list.
Leadership in Software Development Part 4
Principle #10 Build A Team
Principle #11 Employ Your Team In Accordance With Its Capabilities
Continue readingLeadership in Software Development Part 3
Principle #7 Keep Your Team Informed
Communication is the key to any operation. In the Army, they taught that an Infantry Soldier needs to do three things in order to succeed: Shoot, move, and communicate. Well, there should be very little gun fire in open source development, so shooting is less essential. Movement to, since most things happen via network. But communication is paramount. Tell people what you are going to do. A great decision left not communicated is no decision. In the absence of information, people will make assumptions. It is easier to correct mistakes early, and to identify them requires review and correction.
Continue readingLeadership in Software Development Part 2
Principle #6 Know Your Personnel and Look Out for Their Well Being
In an Open Source software project, who are “your people?” Your people are your community. Whether they are a fellow developer from your own company, the guy that pops in once every couple of months to make a typo fix, or someone that just reports bugs, they are all the people that lead to the success (or lack thereof) of your project.
Continue readingAdmin
While I tend to play up bug 968696 for dramatic effect, the reality is we have a logical contradiction on what we mean by ‘admin’ when talking about RBAC.
In early iterations of OpenStack, roles were global. This is reflected in many of the Policy checks that only look for the global role. However, prior to the Keystone-Light rewrite, role assignments became scoped to tenants. This shows up in the Keystone git history. As this pattern got established, some people wrote policy checks that assert:
role==admin and tenant_id=resource.tenant_id
This contradicts the global-ness of the admin roles. If I assign
(‘joeuser’, ‘admin’,’mytenant’)
I’ve just granted them the ability to perform all of the admin operations.
Thus, today we have a situation where, unless the user rewrites the default policy, they have to only assign the role admins to users that are trusted to be admins on the whole deployment.
We have a few choices.
Continue reading
Ossipee
OpenStack is a big distributed system. FreeIPA is designed for security in distributed system. In order to develop and test each of them, separately or together, I need a distributed system. Virtualization has been a key technology for making this kind of work possible. OpenStack is great of managing virtualization. Added to that is the benefits found when we “fly our own airplanes.” Thus, I am using OpenStack to develop OpenStack.
Keystone Unit Tests
Running the Keystone Unit tests takes a long time.
Using the ipa CLI from an unenrolled workstation
FreeIPA is a useful tool for managing hosts. I find myself wanting to do work on remote systems from my desktop using the ipa CLI. Here’s how I set it up.
Continue reading