If I read correctly, they want quota to apply to a subset of pods in a
Namespace (by selector) not the whole namespace (so multiple teams can
share a namespace), or else they need to pollute names with
env-specific decorations.

On Tue, May 9, 2017 at 12:44 AM, 'David Oppenheimer' via Kubernetes
user discussion and Q&A <kubernetes-users@googlegroups.com> wrote:
>> we'd need to make functionality like access control, quotas and other
>> things work based on labels and selectors within the namespace
>
> So you want access control and quotas to be per service per env, not just
> per env?
>
>
> On Mon, May 8, 2017 at 10:20 AM, 'John Huffaker' via Kubernetes user
> discussion and Q&A <kubernetes-users@googlegroups.com> wrote:
>>
>> So that's our current setup (see sam's message): We have namespaces
>> following the convention "serviceName-envName".  This gives us quotas and
>> ABAC, but we lose "semantic naming", as in our conf generation needs to pass
>> dev, staging or prod everywhere and services need to hit
>> "https://serviceName-envName/";.
>>
>> In my mind there are two ways to make this clean:
>> 1. Hierarchical namespaces like Tim suggested.  Where top level namespace
>> is env and sub-namespace is service.
>> 2. Or the env namespaces like you suggest.  Where the namespace is the
>> env.  Service discovery happens in the clean way you you describe, but we'd
>> need to make functionality like access control, quotas and other things work
>> based on labels and selectors within the namespace.  We'd probably also need
>> to be more careful about linking configMaps to their deployments via
>> references instead of the "just kill the namespace" approach we take today.
>>
>> #2 feels both practical and right to me at this point, but it'd obviously
>> require some work.
>>
>>
>>
>> On Sat, May 6, 2017 at 10:34 PM, 'David Oppenheimer' via Kubernetes user
>> discussion and Q&A <kubernetes-users@googlegroups.com> wrote:
>>>
>>> On Sat, May 6, 2017 at 7:45 PM, 'John Huffaker' via Kubernetes user
>>> discussion and Q&A <kubernetes-users@googlegroups.com> wrote:
>>>>
>>>> So our "dev" env would be composed of N-different services foo, bar and
>>>> baz for example. 3 different teams maintain the 3 different services and
>>>> their related deployments.  We would like to limit operations like apply,
>>>> delete, exec and logs to only people on those teams to their respective
>>>> services and deployments.  the only way we found to get ABAC working in the
>>>> way we wanted in 1.2 was to put each service/deployment in their own
>>>> namespace (+ "-env").  Additionally for each service's deployment we'd like
>>>> to set a quota on how many CPUs/ram they can reserve.  As of right now it
>>>> looks like that is per-namespace as well.
>>>
>>>
>>> Is there some reason you don't want the three services to be in three
>>> different namespaces? If you put them in three different namespaces, you can
>>> do everything you described with RBAC and quota.
>>>
>>>>
>>>>
>>>> I've been worried about this conflict between service discovery and
>>>> abac/quota's interpretation of how namespaces should be used for a while.
>>>>
>>>> On May 6, 2017 7:31 PM, "'David Oppenheimer' via Kubernetes user
>>>> discussion and Q&A" <kubernetes-users@googlegroups.com> wrote:
>>>>>
>>>>>
>>>>>
>>>>> On Sat, May 6, 2017 at 7:18 PM, 'John Huffaker' via Kubernetes user
>>>>> discussion and Q&A <kubernetes-users@googlegroups.com> wrote:
>>>>>>
>>>>>> At this point it's the lack of quotas and abac associated with
>>>>>> selectors instead of namespaces.
>>>>>
>>>>>
>>>>> Can you say more about what you mean? What are scenarios where you'd
>>>>> like to restrict use of selectors? (and on what objects?)
>>>>>
>>>>>>
>>>>>>   I haven't looked closely enough at rbac to see if it gives us what
>>>>>> we need within a namespace-per-env setup.
>>>>>>
>>>>>> The other side benefit that we can tool around is that namespace make
>>>>>> a good "packaging" mechanism for deployments and their related
>>>>>> configMaps/secrets.  i.e. Want to delete a deployment just delete it's
>>>>>> namespace.
>>>>>>
>>>>>> On May 6, 2017 6:53 PM, "'David Oppenheimer' via Kubernetes user
>>>>>> discussion and Q&A" <kubernetes-users@googlegroups.com> wrote:
>>>>>>
>>>>>> Re-reading this thread, I'm wondering why the existing service name
>>>>>> resolution procedure that Nikhil mentioned doesn't solve Sam's problem
>>>>>> (without the need for hierarchical namespaces). Use one namespace per
>>>>>> environment, and use the unqualified service name for lookup to find the
>>>>>> desired service in the same environment.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Tue, Apr 18, 2017 at 4:14 PM, 'Sam Ghods' via Kubernetes user
>>>>>> discussion and Q&A <kubernetes-users@googlegroups.com> wrote:
>>>>>>>
>>>>>>> Hello,
>>>>>>>
>>>>>>> We're struggling internally at Box with a question that we were
>>>>>>> hoping the community could help shed some light on.
>>>>>>>
>>>>>>> At Box we have three main environments: development, staging, and
>>>>>>> production. The definition of 'environment' here is primarily a logical
>>>>>>> service discovery domain - what instances of other services should 
>>>>>>> access me
>>>>>>> and what instances of other services should I access? (Some 
>>>>>>> configuration
>>>>>>> can vary as well.) The development environment is a collection of 
>>>>>>> instances
>>>>>>> where changes are pushed first and the most frequently changing 
>>>>>>> environment.
>>>>>>> Staging is where changes go right before they're released and where any
>>>>>>> manual testing is done. Production is the set of instances serving 
>>>>>>> customer
>>>>>>> traffic.
>>>>>>>
>>>>>>> Currently, we have four bare-metal datacenters, one is for
>>>>>>> non-production workloads (let's call it NP), the three other are for
>>>>>>> production workloads (let's call them A, B, C). Each one has a single 
>>>>>>> large
>>>>>>> Kubernetes cluster named after the datacenter it's in. Initially, we
>>>>>>> considered equating namespaces to environments, and having the dev and
>>>>>>> staging namespaces in the NP cluster and the production namespace in 
>>>>>>> the A,
>>>>>>> B and C clusters. But we could not get good isolation between different
>>>>>>> teams and microservices for authentication, quota management, etc.
>>>>>>>
>>>>>>> So instead, for a service 'foo,' each cluster uses namespaces like
>>>>>>> 'foo-dev', 'foo-staging', and 'foo-production', with the first two
>>>>>>> namespaces only existing in the NP cluster, but the production namespace
>>>>>>> only existing in clusters A, B and C. The foo team only has access to 
>>>>>>> the
>>>>>>> foo namespaces (through ABAC, soon RBAC) and the foo namespaces can have
>>>>>>> quotas put on them to ensure they do not overrun a cluster or 
>>>>>>> environment.
>>>>>>>
>>>>>>> However, we've started to wonder whether colocating multiple
>>>>>>> environments in a single cluster like this is a good idea. The first 
>>>>>>> thing
>>>>>>> that gave us pause was federation and service discovery - as the foo
>>>>>>> service, I'd love to be able to deploy to a cluster, then indicate that 
>>>>>>> I
>>>>>>> want to talk to the 'baz' service, and have it automatically find the 
>>>>>>> baz
>>>>>>> service in my cluster, and fall back to a secondary cluster if it's not
>>>>>>> there. Having multiple environments in a single cluster means every app 
>>>>>>> in a
>>>>>>> cluster needs to not only know that it reaches a 'baz' service, but it 
>>>>>>> needs
>>>>>>> to know to specifically reach out to 'baz-dev|staging|prod' etc., which
>>>>>>> pollutes everyone's configs. This is specifically because there's no 
>>>>>>> first
>>>>>>> class concept for "environment" in Kubernetes at the moment - only what
>>>>>>> we've clobbered into namespaces, configs and service names. (Something 
>>>>>>> like
>>>>>>> hierarchical namespaces may be able to help with this.)
>>>>>>>
>>>>>>> The alternative we're considering is to have each cluster contain
>>>>>>> only a single environment. Having one environment per cluster 
>>>>>>> simplifies a
>>>>>>> lot of configuration and object definitions across the board, because
>>>>>>> there's only one axis to worry about (cluster) instead of two (cluster +
>>>>>>> environment). We can know implicitly that everything in a given cluster
>>>>>>> belongs to a specific environment, potentially simplifying configuration
>>>>>>> more broadly. It also feels like it might be a lot more natural of a 
>>>>>>> fit to
>>>>>>> Kubernetes' federation plans, but we haven't looked into this in as much
>>>>>>> depth.
>>>>>>>
>>>>>>> But on the flip side, I've always understood Kubernetes' ultimate
>>>>>>> goal to be a lot more like Borg or an AWS availability zone or region, 
>>>>>>> where
>>>>>>> the software operates more at an infrastructure layer than the 
>>>>>>> application
>>>>>>> layer, because this dramatically improves hardware utilization and
>>>>>>> efficiency and minimizes the number of clusters to operate, scale, etc.
>>>>>>>
>>>>>>> An extreme alternative we've heard is to actually bootstrap a cluster
>>>>>>> per team, but that feels pretty far from the Kubernetes vision, though 
>>>>>>> we
>>>>>>> might be wrong about that as well.
>>>>>>>
>>>>>>> So, we'd love to hear opinions on not only what's recommended or
>>>>>>> possible today with Kubernetes, but what is the vision - should 
>>>>>>> Kubernetes
>>>>>>> clusters exist at an application/environment layer or at the 
>>>>>>> infrastructure
>>>>>>> layer?
>>>>>>>
>>>>>>> Thank you!
>>>>>>> Sam
>>>>>>>
>>>>>>> --
>>>>>>> You received this message because you are subscribed to the Google
>>>>>>> Groups "Kubernetes user discussion and Q&A" group.
>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>> send an email to kubernetes-users+unsubscr...@googlegroups.com.
>>>>>>>
>>>>>>> To post to this group, send email to
>>>>>>> kubernetes-users@googlegroups.com.
>>>>>>> Visit this group at https://groups.google.com/group/kubernetes-users.
>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>
>>>>>>
>>>>>> --
>>>>>> You received this message because you are subscribed to a topic in the
>>>>>> Google Groups "Kubernetes user discussion and Q&A" group.
>>>>>> To unsubscribe from this topic, visit
>>>>>> https://groups.google.com/d/topic/kubernetes-users/GPaGOGxCDD8/unsubscribe.
>>>>>> To unsubscribe from this group and all its topics, send an email to
>>>>>> kubernetes-users+unsubscr...@googlegroups.com.
>>>>>> To post to this group, send email to
>>>>>> kubernetes-users@googlegroups.com.
>>>>>> Visit this group at https://groups.google.com/group/kubernetes-users.
>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>
>>>>>>
>>>>>> --
>>>>>> You received this message because you are subscribed to the Google
>>>>>> Groups "Kubernetes user discussion and Q&A" group.
>>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>>> an email to kubernetes-users+unsubscr...@googlegroups.com.
>>>>>> To post to this group, send email to
>>>>>> kubernetes-users@googlegroups.com.
>>>>>> Visit this group at https://groups.google.com/group/kubernetes-users.
>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>>
>>>>> --
>>>>> You received this message because you are subscribed to a topic in the
>>>>> Google Groups "Kubernetes user discussion and Q&A" group.
>>>>> To unsubscribe from this topic, visit
>>>>> https://groups.google.com/d/topic/kubernetes-users/GPaGOGxCDD8/unsubscribe.
>>>>> To unsubscribe from this group and all its topics, send an email to
>>>>> kubernetes-users+unsubscr...@googlegroups.com.
>>>>> To post to this group, send email to kubernetes-users@googlegroups.com.
>>>>> Visit this group at https://groups.google.com/group/kubernetes-users.
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "Kubernetes user discussion and Q&A" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to kubernetes-users+unsubscr...@googlegroups.com.
>>>> To post to this group, send email to kubernetes-users@googlegroups.com.
>>>> Visit this group at https://groups.google.com/group/kubernetes-users.
>>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>>
>>> --
>>> You received this message because you are subscribed to a topic in the
>>> Google Groups "Kubernetes user discussion and Q&A" group.
>>> To unsubscribe from this topic, visit
>>> https://groups.google.com/d/topic/kubernetes-users/GPaGOGxCDD8/unsubscribe.
>>> To unsubscribe from this group and all its topics, send an email to
>>> kubernetes-users+unsubscr...@googlegroups.com.
>>> To post to this group, send email to kubernetes-users@googlegroups.com.
>>> Visit this group at https://groups.google.com/group/kubernetes-users.
>>> For more options, visit https://groups.google.com/d/optout.
>>
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Kubernetes user discussion and Q&A" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to kubernetes-users+unsubscr...@googlegroups.com.
>> To post to this group, send email to kubernetes-users@googlegroups.com.
>> Visit this group at https://groups.google.com/group/kubernetes-users.
>> For more options, visit https://groups.google.com/d/optout.
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Kubernetes user discussion and Q&A" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to kubernetes-users+unsubscr...@googlegroups.com.
> To post to this group, send email to kubernetes-users@googlegroups.com.
> Visit this group at https://groups.google.com/group/kubernetes-users.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"Kubernetes user discussion and Q&A" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to kubernetes-users+unsubscr...@googlegroups.com.
To post to this group, send email to kubernetes-users@googlegroups.com.
Visit this group at https://groups.google.com/group/kubernetes-users.
For more options, visit https://groups.google.com/d/optout.
        • ... Matthias Rampke
          • ... Paul Ingles
  • [kubernetes... 'Brian Grant' via Kubernetes user discussion and Q&A
  • Re: [kubern... 'David Oppenheimer' via Kubernetes user discussion and Q&A
    • Re: [k... 'John Huffaker' via Kubernetes user discussion and Q&A
      • Re... 'David Oppenheimer' via Kubernetes user discussion and Q&A
        • ... 'John Huffaker' via Kubernetes user discussion and Q&A
          • ... 'David Oppenheimer' via Kubernetes user discussion and Q&A
            • ... 'John Huffaker' via Kubernetes user discussion and Q&A
              • ... 'David Oppenheimer' via Kubernetes user discussion and Q&A
              • ... 'Tim Hockin' via Kubernetes user discussion and Q&A
              • ... 'John Huffaker' via Kubernetes user discussion and Q&A
              • ... 'David Oppenheimer' via Kubernetes user discussion and Q&A
              • ... jhuffaker via Kubernetes user discussion and Q&A
              • ... Tim St. Clair

Reply via email to