Proposal: master/slave alternatives

345 views
Skip to first unread message

Celeste Horgan

unread,
Aug 12, 2020, 8:50:21 PM8/12/20
to Kubernetes WG Naming

Hey all,

This is a proposal to remove master/slave terminology from our repositories. I would be particularly interested in hearing from the group their preferred alternative term.

What follows is a copy-paste from a google doc I put together around the time of the WG's inception. That said, I'd still like to give a chance for the group to discuss this proposal, raise concerns, and otherwise so please take this opportunity to do so.

Cheers,
Celeste

-----

Definition(s):

In computing, A “master” often refers to the original or main version of an entity.

The “master/slave” metaphor in computing refers to a system with a single store of record and a set of replicas which maintain copies of the original data.

Proposed alternatives:

“master”

  • main 

  • original (when used in the context of a “master copy”)

“master/slave”

  • Leader/follower 

  • Parent/child

  • Control plane/control plane node

  • Controller/doer

  • primary/replica

Reasoning:

As the IETF puts it, “Master-slave is an oppressive metaphor that will and should never become fully detached from history.” The word’s origins and historicial use reveal use that is at best chauvinistic and racist, and in almost all cases connotative of ownership. While there is some small ambiguity about the term master, the term slave is unambiguously about the ownership and subjugation of another person, and has been since its inception.

The terms master/slave are harmful to Black and people of color contributors. Slavery is a tradition barely 3 generations abolished – there are grandparents alive today who were actual, non-metaphorical slaves. Segregation is even more recent. In accordance with the CNCF Code of Conduct, the mandate of all contributors is to create welcome space, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion, or nationality. Master/slave are not welcoming terms.

 

Recommendation: Adopt immediately

Supporting research and precedents:

OpenSSL PR (parent/child)

Karthikeyan Govindaraj

unread,
Aug 12, 2020, 9:59:54 PM8/12/20
to Celeste Horgan, Kubernetes WG Naming
Though I agree on the proposed list, I think it's hard to find one alternative for "master/slave" in all the context. So I would like to propose for couple of additions to the "m/s" alternative list

i) active/standby - in the case of the databases
ii) primary/minions - in the case of stateless applications
iii) readers/writer - in case of some databases

---
Many Thanks,
Karthik

Karthikeyan Govindaraj
DevOps Architect | OSS Enthusiast | Blogger

--
You received this message because you are subscribed to the Google Groups "Kubernetes WG Naming" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kubernetes-wg-na...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/kubernetes-wg-naming/e88cc2e9-9a62-4615-809b-fb3de2c35730n%40googlegroups.com.


--
---
Many Thanks,
Karthik

Karthikeyan Govindaraj
DevOps Architect | OSS Enthusiast | Blogger

Stephen Augustus

unread,
Aug 12, 2020, 10:06:04 PM8/12/20
to Karthikeyan Govindaraj, Celeste Horgan, Kubernetes WG Naming
Thanks for sending this out, Celeste!

Nice additions, Karthik.
Definitely agree that we'll need multiple solutions depending on context.

One note: Kubernetes has moved away from referencing nodes as minions[1], so I'd want to opt to not reintroduce that language in a different scenario.

Active/passive is yet another alternative.

-- Stephen



Karthikeyan Govindaraj

unread,
Aug 12, 2020, 10:25:52 PM8/12/20
to Stephen Augustus, Celeste Horgan, Kubernetes WG Naming
agreed, we don't want to re-introduce something that's already dropped.

active/passive is also a reasonable addition to the list.

Zach Corleissen

unread,
Aug 12, 2020, 10:40:23 PM8/12/20
to Karthikeyan Govindaraj, Stephen Augustus, Celeste Horgan, Kubernetes WG Naming
Let’s avoid active/passive for localization reasons.

On Aug 12, 2020, at 19:25, Karthikeyan Govindaraj <github.g...@gmail.com> wrote:



Celeste Horgan

unread,
Aug 19, 2020, 6:50:58 PM8/19/20
to Kubernetes WG Naming
Hi all,

To summarize:

1. We're thus far OK with changing these terms
2. There are lots of viable alternatives. I particularly like Karthik's suggestion of alternatives per use case.

Which brings up the question: do we need to provide one definitive replacement term, or are we okay with providing multiples based on the use case?

I ask this so we can try and coalesce this discussion into a recommendation :)

Cheers,
Celeste

Zach Corleissen

unread,
Aug 19, 2020, 7:49:07 PM8/19/20
to Kubernetes WG Naming
I'd rather see a common definitive, to reduce complexity and for more consistent user and contributor experiences.



--
Zach Corleissen
Lead Technical Writer, Linux Foundation

Jordan Liggitt

unread,
Aug 19, 2020, 9:09:53 PM8/19/20
to Zach Corleissen, Kubernetes WG Naming
For a given meaning, a single recommendation seems like a good idea.

The use to mean "controller/doer" and the use to mean "primary/replica" are quite distinct, so recommending an alternative for each meaning seems necessary.


Karthikeyan Govindaraj

unread,
Aug 20, 2020, 12:07:37 AM8/20/20
to Jordan Liggitt, Zach Corleissen, Kubernetes WG Naming
I agree. For different contexts we might need to provide different alternatives. Referring the same in different contexts will cause a great confusion.

Also in my opinion, we cannot go with just the recommendation alternative for kubernetes nodes alone. So I think we will need to have alternatives defined for diff contexts.


Celeste Horgan

unread,
Aug 25, 2020, 7:21:31 PM8/25/20
to Kubernetes WG Naming


> For different contexts we might need to provide different alternatives.

This isn't my area of expertise. If someone can come up with a list of use cases/scenarios we need to provide language for, I can guide us to the right word choices based on context. But I need the help with the list :)

Celeste

spi...@gmail.com

unread,
Oct 8, 2020, 5:39:21 PM10/8/20
to Kubernetes WG Naming
(maybe this needs its own thread, specifically re: master -> control plane)

So I made the mistake of opening up issues to call out uses of the term "master" in test packages [1] [2], and picked up a bunch of search/replace PR's without much thought behind them.  I was one of them [3], and quickly realized it's not so simple, and it's a bad idea to open the flood gates without a clear guide on how to proceed.

I jotted down a few sample meanings of the term, and some proposed replacements here: https://github.com/kubernetes/kubernetes/issues/94901#issuecomment-705794619

I feel like this needs to be a guide that lives somewhere and can be linked to.  Would a PR into k/community/wg-naming, tagging in reviewers from sig-arch and sig-apimachinery be appropriate? How would you suggest proceeding?

- aaron

spi...@gmail.com

unread,
Oct 20, 2020, 4:03:37 PM10/20/20
to Kubernetes WG Naming
I opened https://github.com/kubernetes/community/pull/5243 and tried to follow the WIP recommendation template [1] and the WIP proposal workflow [2]

It's not clear to me whether it satisfies either of those, I would welcome some guidance on next steps and general review of the recommendation

- aaron

Reply all
Reply to author
Forward
0 new messages