kubernetes / kubernetes

Production-Grade Container Scheduling and Management
https://kubernetes.io
Apache License 2.0
107.2k stars 38.53k forks source link

Please consider changing the name of PetSet before General Availability #27430

Closed jimmycuadra closed 7 years ago

jimmycuadra commented 7 years ago

I brought this up back when PetSet was just a proposal, but it didn't get much response. At the risk of being labeled or dismissed as an "SJW" or "preachy vegan," or of stirring up drama, please hear me out:

The name PetSet is derived from the common metaphor in infrastructure of "pets vs. cattle." The metaphor encourages infrastructure developers to think of cloud servers as anonymous and fungible resources rather than things to be manually managed by a person. The implication is that instead of treating a server like a pet, which you take care of and treat when it becomes sick, you simply destroy the server and replace it with a new one, as a cattle rancher would simply kill an animal that didn't serve its economic purpose to the rancher. The pet has a personal and emotional value to you, but the cattle is just a commodity.

The lesson in infrastructure here is quite a good one, and its value should be preserved, but using this particular metaphor is quite unfortunate, because it perpetuates the belief that the life and well being of an animal has value only in relation to its value to humans.

This may seem like making a mountain out of a molehill, but try to think about how our language perpetuates our culture and our beliefs. Try to think about it in the context of how future generations will see it. In the same way that homophobic or racist language was (and in some cases still is) commonplace and accepted in days past, in the modern world we generally recognize this language as unacceptable because it promotes a negative world view that we have progressed past. Imagine how angry people would be if this feature were called "WifeSet" and the analogy were "wives vs. bar hook-ups." We're in an era of increasing empathy, and that empathy is not bounded only to other humans. It affects any being that can feel pain, sadness, or loss, like we can.

While I don't claim to have a perfect substitute for this analogy that might replace PetSet, the one I have been using myself is to compare the role of owning a car vs using a taxi or ridesharing service. When you own a car, it is your personal possession. You take care of it. You keep it fueled, cleaned, and maintained in good shape. When it breaks, you get it fixed. In contrast, a taxi or ridesharing service is using a car as a fungible resource. You hail one only when you need the service it provides, and you use it only as long as you require that service. You don't care which car picks you up, or who is driving it, as long as it is fulfills the service. So my own suggestion for a replacement for PetSet is CarSet. If someone has a better idea that seems to "click" with people more, all the better. And of course, the feature could be named something more general—it doesn't have to use an analogy. (I recall that originally "NominalSet" was being considered.)

This issue is not about me or anyone else being "offended," or requesting that the name be changed to CarSet specifically—it's just asking specifically not to invoke the pets vs. cattle metaphor in the name of this feature.

Thank you very much for considering this.

For context, here is my previous comment from back in the proposal phase.

smarterclayton commented 7 years ago

Thanks for speaking up - we will definitely take this into the discussions in the community before this feature moves out of alpha.

thockin commented 7 years ago

Agree. We went with PetSet as a working name in part because we knew it could never be the "real" name, but we didn't have a good name for the concept yet. Names hold power, so we want to be careful to find something thta captures the problem well. Having a first impl of the solution will help refine the problem statement, too.

chrislovecnm commented 7 years ago

@thockin I kinda like it ... and it may be a bit too late. Lots of press about Pet Set already.

jimmycuadra commented 7 years ago

Yeah, I may have misunderstood what was meant by changing it before coming out of alpha. To some extent I think the damage is already done now.

chrislovecnm commented 7 years ago

Blame me 👍 One good thing ... memorable names stick. Can we close this?

jimmycuadra commented 7 years ago

I'd still like the team to consider changing it.

thockin commented 7 years ago

I think we really should consider changing it. Silly names do stick, but they are silly.

On Fri, Jul 8, 2016 at 3:32 PM, Jimmy Cuadra notifications@github.com wrote:

I'd still like the team to consider changing it.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/kubernetes/kubernetes/issues/27430#issuecomment-231488356, or mute the thread https://github.com/notifications/unsubscribe/AFVgVBuirVkIDHfQI-HFkCjtIW2HTO5Eks5qTtAUgaJpZM4I2SIQ .

chrislovecnm commented 7 years ago

@thockin we have videos on YouTube, blog posts, tweet, LinkedIn stuff and presentations at conferences, and many many decks with that content. You want to do the rebranding??? It is a big problem to change at this point...

thockin commented 7 years ago

Let's just leave it on the table. I suspect neither of us have marketing degrees :)

On Fri, Jul 8, 2016 at 3:55 PM, Chris Love notifications@github.com wrote:

@thockin https://github.com/thockin we have videos on YouTube, blog posts, tweet, LinkedIn stuff and presentations at conferences, and many many decks with that content. You want to do the rebranding??? It is a big problem to change at this point...

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/kubernetes/kubernetes/issues/27430#issuecomment-231491609, or mute the thread https://github.com/notifications/unsubscribe/AFVgVBTK9YYIsKyZzshvi2EN0Ihg4mpuks5qTtVZgaJpZM4I2SIQ .

aronchick commented 7 years ago

I'm 100% ok with renaming, and don't feel like there's any pain in doing so. However, CarSet does not feel like a fit.

For any who would like name change, please voice here. We'll bring this up at the community meeting next week, and I'd like to settle on a new name by August 1.

jimmycuadra commented 7 years ago

Re-quoting myself for emphasis:

Imagine how angry people would be if this feature were called "WifeSet" and the analogy were "wives vs. bar hook-ups."

If the name were something that was seen more universally as unacceptable, I don't think "people already started using the term in social media, oh well, let's keep it" would be an acceptable attitude. The fact that it's already out there doesn't mean there's no value in changing it. If having a reference to something out in the wild meant you couldn't change it in the future, we wouldn't have things like changelogs and semantic versioning.

chrislovecnm commented 7 years ago

CarSet does not have any relevance in tech, can we come up with something techy or ship like? I am sorta on the side of not changing it, but we need a good name. If we do change it we gotta change it quite quickly. People will have PetSet in production very quickly if not now. Changing code because a team chooses to change branding probably will not make people happy.

smarterclayton commented 7 years ago

Let's be sure to separate this out into two discussions - deciding on a change, vs the naming process. We already have a pattern to deal with the later, but getting the general agreement in the community that the name should be changed probably is what we want to stay focused on for now.

On Fri, Jul 8, 2016 at 7:34 PM, Chris Love notifications@github.com wrote:

CarSet does not have any relevance in tech, can we come up with something techy or ship like? We can change it, but we need a good name.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/kubernetes/kubernetes/issues/27430#issuecomment-231496684, or mute the thread https://github.com/notifications/unsubscribe/ABG_p6EaIMrNm-DoYJkeq0YI_i9vNPoeks5qTt5ygaJpZM4I2SIQ .

jimmycuadra commented 7 years ago

@chrislovecnm

I'm not bound to CarSet (though PetSet doesn't have any "relevance in tech" either)—I was just offering a suggestion that used a similar metaphor, so as not to simply ask the team to do something without offering a possible way to do it. People who have worked on the feature or been involved in its design discussions will probably have better ideas, since they have the best understanding of the use cases for the feature.

chrismarino commented 7 years ago

Just stumbled on this thread...adding my $0.02.

  1. Naming IS HARD!!! I've named dozens of products, features and even companies and its never been a quick or simple process.
  2. Everyone has an opinion. 100% certain there will be someone that does't like a name.
  3. Getting everyone to agree on a name shouldn't be a requirement
  4. Very hard to re-name something once it has any kind of name recognition.

As for PetSets in particular, I think it's a pretty good name. Both informative and evocative (IMO in a good way), which are two of the most important aspects of a name.

That said, its really the name of one of several similar kind of features. And within this broader context it lacks the consistency you'd expect across similar things. Don't have any of the history, but I thought Replication Controllers were renamed to Replica Sets to introduce the idea of Sets which could then be applied to different kinds of sets (i.e. PetSets). But as a group, these two names seem random and they miss the opportunity to apply further consistency across Sets (i.e. one name is literal, the other analogous).

Also, will there be other kinds of Sets? If not, then random is probably OK. But if there will be more kinds of Sets, then the next one would also have to be random since you definitely shouldn't have two 'literal' names with another that is 'analogous'. That would just make PetSets seem too casual and not serious.

derekwaynecarr commented 7 years ago

FamilialSet would get the same idea across. Each member of a family is special, cares about its peers, and often has a particular role, and everyone mourns the loss of any one member.

Or something similar like KinSet or KindredSet

On Friday, July 8, 2016, chrismarino notifications@github.com wrote:

Just stumbled on this thread...adding my $0.02.

  1. Naming IS HARD!!! I've named dozens of products, features and even companies and its never been a quick or simple process.
  2. Everyone has an opinion. 100% certain there will be someone that does't like a name.
  3. Getting everyone to agree on a name shouldn't be a requirement
  4. Very hard to re-name something once it has any kind of name recognition.

As for PetSets in particular, I think it's a pretty good name. Both informative and evocative (IMO in a good way), which are two of the most important aspects of a name.

That said, its really the name of one of several similar kind of features. And within this broader context it lacks the consistency you'd expect across similar things. Don't have any of the history, but I thought Replication Controllers were renamed to Replica Sets to introduce the idea of Sets which could then be applied to different kinds of sets (i.e. PetSets). But as a group, these two names seem random and they miss the opportunity to apply further consistency across Sets (i.e. one name is literal, the other analogous).

Also, will there be other kinds of Sets? If not, then random is probably OK. But if there will be more kinds of Sets, then the next one would also have to be random since you definitely shouldn't have two 'literal' names with another that is 'analogous'. That would just make PetSets seem too casual and not serious.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/kubernetes/kubernetes/issues/27430#issuecomment-231509945, or mute the thread https://github.com/notifications/unsubscribe/AF8dbAUKi4ViTRaqwYcqrOnj9x7Ny8hWks5qTwgzgaJpZM4I2SIQ .

jaycoon commented 7 years ago

JetSet seems fitting (and one letter off). Besides relating the term "jet set", a JetSet is composed of Jets, which should be handled with care

bprashanth commented 7 years ago

The name PetSet is derived from the common metaphor in infrastructure of "pets vs. cattle."

The name petset is derived from the fact that I care about my pets, regardless of what anyone else thinks about their cattle. Cattle are sacred in some places, food in others, and I view that as a culture difference. I won't use pets vs cattle to explain this feature where I'm from, but pets vs servers works just as well :)

jimmycuadra commented 7 years ago

@bprashanth

That's a fair point. Pets have value whether or not they are compared to something else. But the usage of the term in Kubernetes is not without context: Pets vs cattle is a metaphor very commonly used in writing about modern infrastructure. A quick Google search even brings up usage of the term in Kubernetes's own blog. It seems to sidestep the issue I'm trying to address to suggest that the term has no prior meaning in this area of our industry. There are an infinite number of things this feature could be called. Surely there is something that would work that doesn't use this metaphor.

apsinha commented 7 years ago

We can publish options for discussion here. Instead of using metaphors, which can have unintended meaning, let's try a descriptive name. Should ideally be easy to understand for someone with a Linux background. Throwing out some options.

ikester commented 7 years ago

I think that's a good initial set of names (pun intended). I don't think we're too late to change it, as others have pointed out. Yes, there are videos and other materials out there, but it will only get worse with time. If the community agrees that this is a worthwhile thing to do, it should act quickly, otherwise we end up with fuzzy transitions like the one from Replication Controllers to Deployments and Replica Sets.

If we can come up with and agree on API method and parameter names we can certainly converge on object names like these. I find several of the ones proposed by @apsinha to be simple and self-explanatory. I personally think the first two work well: PersistentSet or StatefulSet, as opposed to EphemeralSet.

aronchick commented 7 years ago

My $0.02 vote from Aparna's excellent list:

On the crazy idea side:

I was never fond of PetSet - only for the reason that it is not obvious what it is on its face, and breaks with the obvious naming we have across the product. A "ReplicaSet" is, plainly, a set of replicas. A "Deployment" is ... well ... a deployment. Etc.

The word I'm looking for here is "what is the opposite of a bunch of exact replicas, each of which are unique in some way, but still have some similarity as a group." Maybe I'm coming around to Family/FamilialSet. Or ClusterSet?

jimmycuadra commented 7 years ago

Aparna's list is great. My favorite of the bunch is StatefulSet, since the term "stateful application" is used in the container world and should be pretty easily understood. In discussion of container orchestration systems, you'll often hear people ask, "Great, but how does it handle stateful apps?" In a similar way to how the other ThingSets are sets of Things, a StatefulSet is a set of stateful pods/apps. It could even be more explicit: StatefulPodSet.

smarterclayton commented 7 years ago

FamilySet probably fails the "is a recognizable term for describing the concept at play", and is also redundant (a family is another way of saying "set of humans with shared responsibilities for raising biological offspring", so "a set set").

The distinguishing characteristics of the use case for this object is:

  1. To preserve individual identity for fungible entities
  2. To provide predictable ordering and control as those entities change
  3. To enable the software entities to identify and recognize the other entities by those identities
  4. To get access to a consistent storage mechanism (because their identity also corresponds to data)

Sequence and ordering are relevant, but not strictly necessary (in the future we will probably introduce other naming and ordering schemes, which may prevent sequential / ordered from being accurate). State (or at least, storage) is not required, although I agree that in practice most of the use of this set would be for stateful services.

On Sat, Jul 9, 2016 at 4:13 PM, Jimmy Cuadra notifications@github.com wrote:

Aparna's list is great. My favorite of the bunch is StatefulSet, since the term "stateful application" is used in the container world and should be pretty easily understood. In discussion of container orchestration systems, you'll often hear people ask, "Great, but how does it handle stateful apps?" In a similar way to how the other ThingSets are sets of Things, a StatefulSet is a set of stateful pods/apps.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/kubernetes/kubernetes/issues/27430#issuecomment-231553485, or mute the thread https://github.com/notifications/unsubscribe/ABG_p70Vk4nzeRuWE33mk6FLvxikbTlSks5qUADNgaJpZM4I2SIQ .

bprashanth commented 7 years ago

It's hard to pick a name that doesn't extol any single feature of petset (such as state, persistence, ordering, ordinality, name, sequence). This is one feature we built in reverse, by prototyping a bunch of applications that didn't fit in any existing bucket and formalizing their requirements into an api.

This process is sometimes called domain modelling, and the number of things required by this domain is > 1 word. We faced a similar dilemma choosing its api-group. I think "is a recognizable term for describing the concept at play" might be a trap, and we just need to call it a word that makes people think of the domain.

minhchuduc commented 7 years ago

Aparna's list is awesome! My $0.02 vote is:

We should consider primary use-cases of PetSet to choose name http://kubernetes.io/docs/user-guide/petset/#when-to-use-pet-set

Lukenickerson commented 7 years ago

Here are a few more options:

jaycoon commented 7 years ago

PetSet, redefined as an abbreviation/backronym of PersistentSet ("Pe't")

I like this @Lukenickerson

chrislovecnm commented 7 years ago

So the features of Pet Set are based on identity and don't have to include Data existence. I can have a stateless Pet Set of an application that required known identity for quorum. I would ask to stay away from names that include references to other components like Persistent Volumes when you don't need a PV for a Pet Set.

But back to @smarterclayton's point, should we focus on if we want to change the name to what the name should be on this issue? @smarterclayton you mentioned that we have a procedure for naming stuff?

smarterclayton commented 7 years ago

I had suggested splitting so that we'd have a discussion about the bits independently, but I think it's fine to continue proposing ideas here.

Generally this would go through the proposal process - we'd identify a list of names, people would register objections to the names, and then given the list of candidates try and remove outcomes that don't measure up based on the objections. Once we've gone through that round, assuming we have a number of candidates that people feel strongly about, we'd try to refine them with general agreement amongst the API and proposal reviewers (with the API reviewers being final deciders).

I'd probably argue that getting this name right is extremely important - important enough that we want to find a name that is good enough that all disagreement is resolved through strong arguments for why a name is best

  1. It succinctly describes the core goal
  2. It is recognizable to a layman in the "systems administration" or "web software" fields as matching that core goal, and it would be best if explaining it can be done by simple analogy to something those users are already familiar with
  3. It ends with *Set
  4. We prefer descriptive names over "cute" names inasmuch as we're trying to describe a core pattern vs creating marketing material, keeping in mind patterns that can't be explained easily aren't good patterns.

I think most of those have already been stated here, and if folks want to continue brainstorming here please do so.

On Mon, Jul 11, 2016 at 1:51 PM, Chris Love notifications@github.com wrote:

So the features of Pet Set are based on identity and don't have to include Data existence. I can have a stateless Pet Set of an application that required known identity for quorum. I would ask to stay away from names that include references to other components like Persistent Volumes when you don't need a PV for a Pet Set.

But back to @smarterclayton https://github.com/smarterclayton's point, should we focus on if we want to change the name to what the name should be on this issue? @smarterclayton https://github.com/smarterclayton you mentioned that we have a procedure for naming stuff?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/kubernetes/kubernetes/issues/27430#issuecomment-231811578, or mute the thread https://github.com/notifications/unsubscribe/ABG_p62jIalGbdkOetp_CIDUuA5sWa0Zks5qUoK5gaJpZM4I2SIQ .

philk commented 7 years ago

From the latest blog post: A relevant analogy is that a Pet Set is composed of Pet dogs. If you have a white, brown or black dog and the brown dog runs away, you can replace it with another brown dog no one would notice. wat.

I think this is a pretty good example of how "pet" isn't the right name for this even technically since a pet has a number of extra implications.

NamedSet or IdentitySet seems to align closest with what's currently provided. They're not a PersistentSet unless you specifically add volumes to them or in other words, a PersistentSet to me is a NamedSet + (n * PersistentVolumeClaim).

Also relevant re: the blog post. This really needs to happen sooner rather than later or it's guaranteed to stick or at least be too complicated to change due to docs/issues/code that already references the current name.

bgrant0607 commented 7 years ago

For completeness, names that have been proposed in the past that I don't see above include NominalSet, ShardSet, and IndexedSet.

The distinguishing characteristics we want to convey were specified here: https://github.com/kubernetes/kubernetes/issues/27430#issuecomment-231554652

To expand on the storage point: The controller currently known as PetSet is unique among all the controllers in that it can instantiate and manage PVCs as well as pods, and, though it has other uses, the driving motivation for this controller is improved support for stateful workloads.

ref #260, #18016, #3024

bgrant0607 commented 7 years ago

cc @erictune

jimmycuadra commented 7 years ago

Another blog post has appeared which quite heavily uses the pets vs. cattle metaphor and makes it very clear that this is the derivation of the name of PetSet. Is there a way to communicate to the Kubernetes marketing team that a rename is being discussed? This kind of attention on the name PetSet is why I emphasized "before release" in the title of this issue.

Thanks to everyone participating in the discussion to help find a more fitting name.

erictune commented 7 years ago

Sets are unordered. Lists, Arrays and Sequence all imply order and having indexes. So, I don't get why it has to end in set. I don't even think it is good for it to end in set.

Which opens up:

erictune commented 7 years ago

They aren't replicas, but they aren't totally different either. There is only one template. They all have to have the same PodSpec. So, "distinct" or snowflake overemphasize the differences.

erictune commented 7 years ago

It would be nice to capture that they are similar, and cooperate to fulfill a single purpose (what we would call a service if that name wasn't taken). But they have numbers.

Which leads me to the name "Team". They work together, but they have numbers on the back of their jerseys so that you can tell them apart.

erictune commented 7 years ago

Another thought: While the dictionary definition of "Replica" is an identical copy. But that is not how we use it in computer systems. MySQL, which is a key motivating use case for PetSet, talks about the master and slave (yes, I know another offensive term), as both being replicas. In fact, zookeeper and cassandra talk about replication and replication factors -- which I understand refers to specific data being replicated rather than instances, but all these apps that we are talking about running with PetSet, there is replication involved.

So, what about:

I sort of like ReplicaArray best because array index is a thing, but list index, vector index, and sequence index are not so much things.

I also like that it suggests some similarity with ReplicaSet.

Also, the PetSet type has a replicas field in it, so, yeah.

therc commented 7 years ago

Team, Lineup, Ensemble, Cohort or Variants. I agree with @erictune that the name needs to convey some degree of similarity rather than uniqueness.

chrislovecnm commented 7 years ago

Can someone change the name of this issue? Release has already occurred ;)

StatefulSet gets my vote.

Or on the radical side:

PetSet ... just keep the darn name.

timothysc commented 7 years ago

+1 to StatefulSet

chrishiestand commented 7 years ago

In my mind, the general use case that stands above the rest is that by contrast to all other pod deployment mechanisms this is the one that allows stateful pods. So my vote is for StateSet - it is after all a set of states (thanks @apsinha for a great list); it sounds the best to me and is grammatically akin to PetSet, ReplicaSet and DaemonSet; but I would side with StatefulSet as a next best option.

Terms that start with "Replica" will be confusing next to ReplicaSet. And names that make the indexing prominent don't describe why you would want to use pods that are indexed. Team is a good suggestion, but "Teamwork" could also describe what ReplicaSets do.

ValentinFunk commented 7 years ago

+1 for StatefulSet, @erictune when reading your comment i was already confused by this, thinking it was already changed to ReplicaSet. Please do not pick a name that is too similar as it would be very easy to confuse the two (ReplicationController vs ReplicaSet vs ReplicaSequence ??? Very confusing to a beginner).

rkrzewski commented 7 years ago

+1 to ShardSet. A shard of a distributed database has a stable identity and associated persistent storage. Shards may added/removed from the system, but it is a non-trivial operation that requires careful planning and execution. This is the gist of a PetSet as I understand it. Also the terms "shard" / "sharding" are already familiar the intended users of this feature, which is IMO an advantage over more abstract names like OrderedSet, ReplicaVector.

chrishiestand commented 7 years ago

I think ShardSet is a little too narrow because sharding is a subset of what PetSets do. PetSets allow the stateful representation of shards. PetSets are also for the stateful management of unsharded data like SQL master/slave replicas or etcd clusters where data is replicated but not sharded. As best as I can tell the commonality is statefulness.

rkrzewski commented 7 years ago

Agreed, but does "StatefulSet" make sense? Are the things in the set stateful, or the set itself? I think most people would assume the latter. ShardSet does not have this ambiguity. "Replica" has already been established as the identical, interchangeable kind in Kubernetes lingo, so I think using a different word is warranted for the replicas that have distinguishable identity.

sttts commented 7 years ago

+1 for PetSet

ShardSet or StatefulSet are not better than what we have now.

On Tue, Jul 26, 2016 at 5:54 PM, wallverb notifications@github.com wrote:

I would say - keep PetSet and focus on something more important. There are already Masters/Slaves and BlackLists/WhiteLists and we live with it :)

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/kubernetes/kubernetes/issues/27430#issuecomment-235313550, or mute the thread https://github.com/notifications/unsubscribe-auth/AAskC7vBs4DJLowApQyl-bOJ1UcYI3oRks5qZi3PgaJpZM4I2SIQ .

karlkfi commented 7 years ago

I suspect the naming problem is actually a symptom of a design/hierarchy/abstraction problem from trying to add mid-layer functionality without breaking reverse compatibility of the existing layers.

AFAIK, the distinguishing capability of PetSet is that it persists the IP and volumes of a container through resurrection/rescheduling of the container. This implies there may be a missing abstraction layer between replicator and container.

For example, ignoring existing nomenclature, you could describe Clans as sets of Households that contain People, where the Clan describes a quantity of Households, the Household describes a named set of People, and the People can be either parents or children (expressing a two-level hierarchy of containers like a pod, where the parent namespaces network/disk/volumes for the children to share). The names that the Household uses to describe the People could then be configurable to either survive reincarnation (like PetSets) or not. If reincarnation is enabled, a replacement Person would get the same name/network/volumes as its predecessor. These names are probably not ideal either, but they hopefully they express how ReplicaSet and PetSet could exist in the same object hierarchy.

bprashanth commented 7 years ago

The goals of an rc and petset are different. an rc is like a batallion of soldiers, they don't really know each other and as some die they're replaced asap. A petset is more like a family, they get names and startup/die in order. Obviously the soldiers can form a familiy, it would just be awkward, and the family can form an army, it would just be ineffective. The difference between an rc with reincarnation set to true and a petset is the latter provides an ordinal index, startup/teardown and a few other features designed to safeguard cluster membership.

karlkfi commented 7 years ago

The difference between an rc with reincarnation set to true and a petset is the latter provides an ordinal index, startup/teardown and a few other features designed to safeguard cluster membership.

Those could be accounted for with feature flags, rather than being implicit features of the abstraction layer. Ordinal index is similar enough to a persistent name. Startup/teardown is something that would be nice to have on all containers/pods.