Skip to content

Conversation

@jesscodez
Copy link
Contributor

@jesscodez jesscodez commented Sep 27, 2017

@chenopis This PR is a quick prototype of what we discussed last week. You mentioned that Sarah (or was it Paris?) thought it would be worth formally defining "user persona terms" like "cluster operator" and "application developer."

I put the link to this glossary page under Reference. You may have mentioned putting it on the home page--I think that categorically it makes sense under "Reference", but was that suggestion due to visibility concerns? If you feel strongly I can move it.

GIF of final product, illustrating all the random features:

glossary


This change is Reviewable

@jesscodez jesscodez requested a review from chenopis September 27, 2017 15:29
@k8s-ci-robot k8s-ci-robot added cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. size/M Denotes a PR that changes 30-99 lines, ignoring generated files. labels Sep 27, 2017
@k8sio-netlify-preview-bot
Copy link
Collaborator

k8sio-netlify-preview-bot commented Sep 27, 2017

Deploy preview ready!

Built with commit ccc9a06

https://deploy-preview-5657--kubernetes-io-master-staging.netlify.com

@jesscodez
Copy link
Contributor Author

See https://deploy-preview-5657--kubernetes-io-master-staging.netlify.com/docs/reference/glossary/

Copy link
Contributor

@chenopis chenopis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great!

As per our Slack convo:

  • I think we should simplify the title and just call it "Glossary".
  • We need to disable the "Edit this Page" button since changes requested by users would probably need to be made at the snippet level.
  • Don't worry about handling a long list of terms until we add more content. Then it will be worth a refactor.
  • The first incarnation of Glossary was in the Reference section, so I'm fine w/ leaving it there unless there is a huge uproar, which I doubt. It's easy enough to move if we need to.

@chenopis
Copy link
Contributor

cc @parispittman

@chenopis
Copy link
Contributor

@abiogenesis-now It was Paris (@parispittman) who mentioned adding community terms, but I like to think of it as coming from the uber-entity known as Saris. LOL

@chenopis chenopis added this to the Glossary milestone Sep 27, 2017
@k8s-ci-robot k8s-ci-robot added size/L Denotes a PR that changes 100-499 lines, ignoring generated files. and removed size/M Denotes a PR that changes 30-99 lines, ignoring generated files. labels Sep 28, 2017
@jesscodez
Copy link
Contributor Author

@chenopis addressed your comments! Do you think we can merge this first or should we keep it as a PR until we've fleshed out all the "People"/"User Persona" terms?

@chenopis
Copy link
Contributor

chenopis commented Sep 28, 2017

@abiogenesis-now I want to merge this now, but since it's still pretty sparse, I think we should do a quick sprint to get maybe a dozen terms in before we merge.

EDIT: My suggestion would be to scrape terms from the top 25 "Related queries" in Google Trends for a discrete list of ones to start with.

@jesscodez
Copy link
Contributor Author

@chenopis good idea! I'll make a list--might solicit help from you, Luke, and Jennifer to help populate/edit the definitions (if you have bandwidth, of course!)

@chenopis
Copy link
Contributor

We can also scrape some terminology and/or definitions from: https://github.com/kubernetes-incubator/service-catalog/blob/master/terminology.md

@jesscodez
Copy link
Contributor Author

jesscodez commented Sep 29, 2017

Got carried away so I updated the glossary UI to be fancy and tag-filtering.
It might have bugs and not scale with a large number of terms (because essentially ALL content is being loaded onto the page and I'm using Javascript to hide/show things accordingly...maybe JS will be able to though, not sure).

TODOs:

  • add Paris's terms to the YAML
  • flesh out definitions
  • make sure tags make sense (and how we assigned things)
  • fix the CI test that checks canonical terms (since I changed the structure of those)
  • current setup kind of assumes that each term has at least one tag---I'll add that check to the CI test
  • probably also sort tags alphabetically
  • fix "Create an Issue" button

@k8s-ci-robot k8s-ci-robot added size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. size/L Denotes a PR that changes 100-499 lines, ignoring generated files. and removed size/L Denotes a PR that changes 100-499 lines, ignoring generated files. size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. labels Sep 29, 2017
@chenopis
Copy link
Contributor

chenopis commented Oct 3, 2017

FYI, Travis CI is failing

[0K$ go test -v k8s.io/kubernetes.github.io/test
=== RUN TestExampleObjectSchemas
--- PASS: TestExampleObjectSchemas (0.10s)
=== RUN TestReadme
--- PASS: TestReadme (0.01s)
=== RUN TestCanonicalTags
--- FAIL: TestCanonicalTags (0.00s)
glossary_test.go:43: Unable to read file ../_data/canonical-tags.yml: open ../_data/canonical-tags.yml: no such file or directory
FAIL
exit status 1
FAIL k8s.io/kubernetes.github.io/test 0.182s

@chenopis
Copy link
Contributor

chenopis commented Oct 5, 2017

@abiogenesis-now For some reason, the "Create an Issue" button seems to have moved.

51hhvz4oq1b

@jesscodez
Copy link
Contributor Author

@chenopis good call, I'll add it to the TODOS

@jesscodez
Copy link
Contributor Author

jesscodez commented Oct 5, 2017

Terms remaining:

  • application architect (Jessica)
  • application developer (Steve)
  • cluster (Steve)
  • container (Andrew)
  • CronJob (Andrew)
  • deployment (Steve)
  • downstream (Andrew)
  • helm chart (Jessica)
  • ingress (Steve)
  • istio (Jessica)
  • kops (Jessica)
  • kubeadm (Steve)
  • kubectl (Steve)
  • Kubernetes API (Jessica)
  • minikube (Steve)
  • RBAC (Andrew)
  • service (Steve)
  • upstream (Andrew)

@chenopis
Copy link
Contributor

chenopis commented Oct 5, 2017

@abiogenesis-now Can we change the spec and rename "formerly" to "aka"?

Additional Authors:
* Andrew Chen <chenopis@users.noreply.github.com>
* Steve Perry <steveperry-53@users.noreply.github.com>
@jesscodez
Copy link
Contributor Author

Added GIF to main description (for reference)

@chenopis
Copy link
Contributor

chenopis commented Oct 6, 2017

cc @jaredbhatti @devin-donnelly

short-description: |
A person who writes an application that runs in a Kubernetes cluster.
long-description: |
Typically an application developer works on one portion of an application that is split into microservices.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think we need to say that microsrvices are "typical". Maybe "..one portion of an application, which might be monolithic or composed of many microservices."

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, I'll make the change.

A person who designs infrastructure that involves one or more Kubernetes clusters.
long-description: |
They are concerned with distributed system best practices, such as high availability and security. A cluster architect is likely the one determining the suitability of a feature like cross-cloud cluster federation, for their particular setup.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would strike references to federation.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, I'll remove the second sentence.

short-description: |
A set of machines, called nodes, that run containerized applications managed by Kubernetes.
long-description: |
Typically a cluster has serveral worker nodes and at least one master node.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typo: serveral

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

got it, thx

short-description: |
Develops and contributes code to the project that is part of the open source codebase.
long-description: |
They are also an active community member and participate in one of the Special Interest Groups (SIGs).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"may participate"

"one or more"

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thx

- core-object
- workload
short-description: |
Manages time based [Jobs](/docs/concepts/jobs/run-to-completion-finite-workloads/) that are run once or periodically on a given schedule.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"once" doesn't make sense "on a given schedule".

"A job that runs on a periodic schedule. "?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, I'm going with "Manages a Job that runs on a periodic schedule."

- architecture
- extension
short-description: |
An API object that manages external access to the services in a cluster.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cluster, typically HTTP.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

got it

- fundamental
- architecture
short-description: |
The foundation for how Kubernetes represents and stores the state of the cluster.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doesn't actually describe what an apiserver is.

"The application which serves the Kubernetes HTTP API, and which stores the state of the cluster".

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm going with "The application which serves the Kubernetes HTTP API and stores the state of the cluster."

tags:
- community
short-description: |
Works holistically across the project to maintain its health and success.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is what they do, not what they are.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@abiogenesis-now Let's rewrite this.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about...

short-description: "A highly experienced contributor, active in multiple areas, who has cross area ownership and GitHub repo write access."

long-description: "They work holistically across the project to maintain its health and success and have made substantial contributions, both through code development and broader organizational efforts."

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

works for me---I'm making the slight copyedit of saying "active in multiple areas [of Kubernetes]" but if you disagree, let me know

- core-object
- fundamental
short-description: |
The smallest and simplest Kubernetes object. Represents a set of running processes on your cluster.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/processes/containers ?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok

- fundamental
- core-object
short-description: |
An API object that manages load-balanced access to a replicated set of Pods.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

An API object that describes how to access applications, such as a set of Pods, and can describe ports and load-balancers.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thx

@chenopis
Copy link
Contributor

chenopis commented Oct 9, 2017

BTW, we should double check the community membership role definitions against https://github.com/kubernetes/community/blob/master/community-membership.md.

Copy link
Contributor

@zacharysarah zacharysarah left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Editorial review, part 1. There's more to come; I'll pick back up tomorrow, beginning with Cluster Operators.

@@ -0,0 +1,3 @@
id: fundamental
name: Fundamental
description: Relevant to a first-time user of Kubernetes.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Relevant for

@@ -0,0 +1,3 @@
id: networking
name: Networking
description: Relevant to how Kubernetes components talk to each other (and to programs outside the cluster).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How Kubernetes components talk to each other and to programs outside the cluster.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 I'll be changing all of these as you suggested, but want to provide some context. Initially I prefaced a lot of these terms with "relevant to" because the description shows up as follows:
screen shot 2017-10-10 at 8 57 42 am

I wasn't sure if the description should directly apply to the tags themselves (in which case, it's clear that "relevant for" should be omitted), or to the terms described by the tags---so I initially opted for the latter.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the context, it helps! 👍

@@ -0,0 +1,3 @@
id: architecture
name: Architecture
description: Related to the inner components of the Kubernetes system.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the Kubernetes system

Can we replace this with just "Kubernetes"? See operation.yaml for the same question. So:

description: The inner components of Kubernetes.

@@ -0,0 +1,3 @@
id: operation
name: Operation
description: Relevant to starting and maintaining the Kubernetes system itself.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the Kubernetes system

Can we replace this with "Kubernetes"? See architecture.yaml for the same question. So:

description: Starting and maintaining Kubernetes.

@@ -0,0 +1,3 @@
id: security
name: Security
description: Relevant to keeping Kubernetes applications safe and secure.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

description: Keeping Kubernetes applications safe and secure.

tags:
- community
short-description: |
Able to both review and approve K8s code contributions.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A person who can review and approve Kubernetes code contributions.

short-description: |
Able to both review and approve K8s code contributions.
long-description: |
While code review is focused on code quality and correctness, approval is focused on holistic acceptance of a contribution including&#58; backwards/forwards compatibility, adhering to API and flag conventions, subtle performance and correctness issues, interactions with other parts of the system, etc.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

While code review focuses on code quality and correctness, approval is focused on holistic acceptance of a contribution. Holistic acceptance includes backwards/forwards compatibility, adhering to API and flag conventions, subtle performance and correctness issues, interactions with other parts of the system, and others.

tags:
- community
short-description: |
Terms under which the contributor grants a license to the open source project for their contributions.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Terms under which a contributor grants a license to an open source project for their contributions.

short-description: |
Terms under which the contributor grants a license to the open source project for their contributions.
long-description: |
They help enable a legal resolution to cases in which there are copyright disputes related to contributed material or intellectual property (IP).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CLAs help resolve legal disputes involving contributed material and intellectual property.

A person who designs infrastructure that involves one or more Kubernetes clusters.
long-description: |
They are concerned with distributed system best practices, such as high availability and security.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cluster architects are concerned with best practices for distributed systems, for example: high availability and security.

Copy link
Contributor

@zacharysarah zacharysarah left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These look good. 🌟 Make sure to apply capitalization (or the lack thereof) of terms consistently across all entries. Pods/pods, Nodes/nodes, Clusters/clusters, etc.

tags:
- user-type
short-description: |
A person who configures, controls, and monitors cluster(s).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

clusters.

long-description: |
Their primary responsibility is keeping the cluster up and running, which may involve periodic maintenance activities or upgrades.<br>
*(Cluster operators are not to be confused with the [Operator pattern](https://coreos.com/operators) that extends the Kubernetes API.)*
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note: Cluster operators are different from the Operator pattern that extends the Kubernetes API.

short-description: |
A set of machines, called nodes, that run containerized applications managed by Kubernetes.
long-description: |
Typically a cluster has several worker nodes and at least one master node.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A cluster has several worker nodes and at least one master node.

short-description: |
An API object that manages a replicated application.
long-description: |
Each replica is represented by a Pod, and the Pods are distributed among the Nodes of a cluster.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Make sure that Node is either capitalized or un-capitalized correctly for all entries; same for Pod.

Copy link
Contributor Author

@jesscodez jesscodez Oct 11, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 will stick to capitalizing standard K8s objects only

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@abiogenesis-now Thanks, that was what I was trying to convey. 😸 👍

- community
- user-type
short-description: |
Develops and contributes code to the project that is part of the open source codebase.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A person who develops and contributes code to the open source codebase.

long-description: |
Like Deployments, StatefulSets manage Pods that are based on an identical container spec. However, although their specs are the same, the Pods in a StatefulSet are not interchangeable. Each Pod has a persistent identifier that it maintains across any rescheduling.
Like a Deployment, a StatefulSet manages Pods that are based on an identical container spec. Unlike a Deployment, a StatefulSet maintains a sticky identity for each of their Pods. These pods are created from the same spec, but are not interchangeable--each has a persistent identifier that it maintains across any rescheduling.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

interchangeable: each has

short-description: |
May refer to: core Kubernetes or the source repo from which a repo was forked.
long-description: |
In the Kubernetes Community, conversations often use *upstream* to mean the core Kubernetes codebase, which the general ecosystem, other code, or third-party tools rely upon. For example, community members may suggest that a feature is moved upstream so that it is in the core codebase instead of in a plugin or third-party tool.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

relies upon.

@@ -0,0 +1,9 @@
id: wg
name: WG (Working Group)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

working group

short-description: |
Facilitates the discussion and/or implementation of a short-lived, narrow, or decoupled project for a committee, SIG, or cross-SIG effort.
long-description: |
They are a way of organizing people to accomplish a discrete task and are relatively easy to create and deprecate when inactive.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Working groups are a way of organizing people to accomplish a discrete task, and are relatively easy to create and deprecate when inactive.

Facilitates the discussion and/or implementation of a short-lived, narrow, or decoupled project for a committee, SIG, or cross-SIG effort.
long-description: |
They are a way of organizing people to accomplish a discrete task and are relatively easy to create and deprecate when inactive.
For more information, see the [kubernetes/community](https://github.com/kubernetes/community) repo and the current list of [SIGs and Working Groups](https://github.com/kubernetes/community/blob/master/sig-list.md).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

working groups

@jesscodez
Copy link
Contributor Author

Addressed most of your comments @zacharysarah and added some more cross-linking. Also am now using long-description: > rather than long-description: | in some of the YAML files because this allows you to break up your text semantically (without actually resulting in rendered linebreaks).

Copy link
Contributor

@chenopis chenopis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/lgtm

Copy link
Contributor

@zacharysarah zacharysarah left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! 🌟 :shipit: 🌟

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. size/XL Denotes a PR that changes 500-999 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants