diff --git a/_data/canonical-tags.yml b/_data/canonical-tags.yml
deleted file mode 100644
index d5c4bcfdec..0000000000
--- a/_data/canonical-tags.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-- Fundamental
-- API Object
-- Metadata
-- Configuration
-- Security
-- Networking
-- Storage
-- Operation
-- Workload
-- Component
-- API
-- Extension
diff --git a/_data/canonical-tags/architecture.yaml b/_data/canonical-tags/architecture.yaml
new file mode 100644
index 0000000000..369aa36cc0
--- /dev/null
+++ b/_data/canonical-tags/architecture.yaml
@@ -0,0 +1,3 @@
+id: architecture
+name: Architecture
+description: The inner components of Kubernetes.
diff --git a/_data/canonical-tags/community.yaml b/_data/canonical-tags/community.yaml
new file mode 100644
index 0000000000..34a60b5df2
--- /dev/null
+++ b/_data/canonical-tags/community.yaml
@@ -0,0 +1,3 @@
+id: community
+name: Community
+description: Related to Kubernetes open-source development.
diff --git a/_data/canonical-tags/core-object.yaml b/_data/canonical-tags/core-object.yaml
new file mode 100644
index 0000000000..c816013899
--- /dev/null
+++ b/_data/canonical-tags/core-object.yaml
@@ -0,0 +1,3 @@
+id: core-object
+name: Core Object
+description: A resource type that Kubernetes supports by default.
diff --git a/_data/canonical-tags/extension.yaml b/_data/canonical-tags/extension.yaml
new file mode 100644
index 0000000000..6aacd8dac9
--- /dev/null
+++ b/_data/canonical-tags/extension.yaml
@@ -0,0 +1,3 @@
+id: extension
+name: Extension
+description: Supported customizations of Kubernetes.
diff --git a/_data/canonical-tags/fundamental.yaml b/_data/canonical-tags/fundamental.yaml
new file mode 100644
index 0000000000..f9dc8f2398
--- /dev/null
+++ b/_data/canonical-tags/fundamental.yaml
@@ -0,0 +1,3 @@
+id: fundamental
+name: Fundamental
+description: Relevant for a first-time user of Kubernetes.
diff --git a/_data/canonical-tags/networking.yaml b/_data/canonical-tags/networking.yaml
new file mode 100644
index 0000000000..481c02c50a
--- /dev/null
+++ b/_data/canonical-tags/networking.yaml
@@ -0,0 +1,3 @@
+id: networking
+name: Networking
+description: How Kubernetes components talk to each other (and to programs outside the cluster).
diff --git a/_data/canonical-tags/operation.yaml b/_data/canonical-tags/operation.yaml
new file mode 100644
index 0000000000..140be06e0c
--- /dev/null
+++ b/_data/canonical-tags/operation.yaml
@@ -0,0 +1,3 @@
+id: operation
+name: Operation
+description: Starting and maintaining Kubernetes.
diff --git a/_data/canonical-tags/security.yaml b/_data/canonical-tags/security.yaml
new file mode 100644
index 0000000000..4bb7191a6f
--- /dev/null
+++ b/_data/canonical-tags/security.yaml
@@ -0,0 +1,3 @@
+id: security
+name: Security
+description: Keeping Kubernetes applications safe and secure.
diff --git a/_data/canonical-tags/storage.yaml b/_data/canonical-tags/storage.yaml
new file mode 100644
index 0000000000..e98d797b6e
--- /dev/null
+++ b/_data/canonical-tags/storage.yaml
@@ -0,0 +1,3 @@
+id: storage
+name: Storage
+description: How Kubernetes applications handle persistent data.
diff --git a/_data/canonical-tags/tool.yaml b/_data/canonical-tags/tool.yaml
new file mode 100644
index 0000000000..943d1ba4b0
--- /dev/null
+++ b/_data/canonical-tags/tool.yaml
@@ -0,0 +1,3 @@
+id: tool
+name: Tool
+description: Software that makes Kubernetes easier or better to use.
diff --git a/_data/canonical-tags/user-type.yaml b/_data/canonical-tags/user-type.yaml
new file mode 100644
index 0000000000..8f38725720
--- /dev/null
+++ b/_data/canonical-tags/user-type.yaml
@@ -0,0 +1,3 @@
+id: user-type
+name: User Type
+description: Represents a common type of Kubernetes user.
diff --git a/_data/canonical-tags/workload.yaml b/_data/canonical-tags/workload.yaml
new file mode 100644
index 0000000000..4b18a36443
--- /dev/null
+++ b/_data/canonical-tags/workload.yaml
@@ -0,0 +1,3 @@
+id: workload
+name: Workload
+description: Applications running on Kubernetes.
diff --git a/_data/glossary/_example.yml b/_data/glossary/_example.yml
index d939c91f3c..34268a07c3 100644
--- a/_data/glossary/_example.yml
+++ b/_data/glossary/_example.yml
@@ -1,13 +1,13 @@
id: _example
name: Example K8s Term
-formerly:
+aka:
- Slang K8s Term
- Misnomer
- Formerly Known as Prince
related:
-- Less Fancy K8s Term
-- Tangential Term
-- Commonly Used With
+- id-of-less-fancy-k8s-term
+- id-of-tangential-term
+- id-of-commonly-used-with-term
tags:
- Some Tag
short-description: |
diff --git a/_data/glossary/application-architect.yaml b/_data/glossary/application-architect.yaml
new file mode 100644
index 0000000000..ad14229720
--- /dev/null
+++ b/_data/glossary/application-architect.yaml
@@ -0,0 +1,11 @@
+id: application-architect
+name: Application Architect
+related:
+ - application-developer
+tags:
+ - user-type
+short-description: |
+ A person responsible for the high-level design of an application.
+long-description: >
+ An architect ensures that an app's implementation allows it to interact with its surrounding components in a scalable, maintainable way.
+ Surrounding components include databases, logging infrastructure, and other microservices.
diff --git a/_data/glossary/application-developer.yaml b/_data/glossary/application-developer.yaml
new file mode 100644
index 0000000000..5fc2fa9f80
--- /dev/null
+++ b/_data/glossary/application-developer.yaml
@@ -0,0 +1,11 @@
+id: application-developer
+name: Application Developer
+related:
+ - application-architect
+tags:
+ - user-type
+short-description: |
+ A person who writes an application that runs in a Kubernetes cluster.
+long-description: >
+ An application developer focuses on one part of an application.
+ The scale of their focus may vary significantly in size.
diff --git a/_data/glossary/approver.yaml b/_data/glossary/approver.yaml
new file mode 100644
index 0000000000..5047a78283
--- /dev/null
+++ b/_data/glossary/approver.yaml
@@ -0,0 +1,10 @@
+id: approver
+name: Approver
+tags:
+- community
+short-description: |
+ A person who can review and approve Kubernetes code contributions.
+long-description: >
+ While code review is focused on code quality and correctness, approval is focused on the 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.
+ Approver status is scoped to a part of the codebase.
diff --git a/_data/glossary/cla.yaml b/_data/glossary/cla.yaml
new file mode 100644
index 0000000000..75dd5408d3
--- /dev/null
+++ b/_data/glossary/cla.yaml
@@ -0,0 +1,8 @@
+id: cla
+name: CLA (Contributor License Agreement)
+tags:
+- community
+short-description: |
+ Terms under which a [contributor](#term-contributor) grants a license to an open source project for their contributions.
+long-description: |
+ CLAs help resolve legal disputes involving contributed material and intellectual property (IP).
diff --git a/_data/glossary/cluster-architect.yaml b/_data/glossary/cluster-architect.yaml
new file mode 100644
index 0000000000..9cec933e93
--- /dev/null
+++ b/_data/glossary/cluster-architect.yaml
@@ -0,0 +1,12 @@
+id: cluster-architect
+name: Cluster Architect
+related:
+ - cluster
+ - cluster-operator
+tags:
+ - user-type
+short-description: |
+ A person who designs infrastructure that involves one or more Kubernetes clusters.
+
+long-description: |
+ Cluster architects are concerned with best practices for distributed systems, for example: high availability and security.
diff --git a/_data/glossary/cluster-operator.yaml b/_data/glossary/cluster-operator.yaml
new file mode 100644
index 0000000000..8224517881
--- /dev/null
+++ b/_data/glossary/cluster-operator.yaml
@@ -0,0 +1,16 @@
+id: cluster-operator
+name: Cluster Operator
+aka:
+ - Cluster Administrator
+related:
+ - cluster
+ - cluster-architect
+tags:
+ - user-type
+short-description: |
+ A person who configures, controls, and monitors clusters.
+
+long-description: |
+ Their primary responsibility is keeping a cluster up and running, which may involve periodic maintenance activities or upgrades.
+
+ **NOTE:** Cluster operators are different from the [Operator pattern](https://coreos.com/operators) that extends the Kubernetes API.
diff --git a/_data/glossary/cluster.yaml b/_data/glossary/cluster.yaml
new file mode 100644
index 0000000000..a85ce8d2f6
--- /dev/null
+++ b/_data/glossary/cluster.yaml
@@ -0,0 +1,9 @@
+id: cluster
+name: Cluster
+tags:
+- fundamental
+- operation
+short-description: |
+ A set of machines, called nodes, that run containerized applications managed by Kubernetes.
+long-description: |
+ A cluster has several worker nodes and at least one master node.
diff --git a/_data/glossary/code-contributor.yaml b/_data/glossary/code-contributor.yaml
new file mode 100644
index 0000000000..acc9878863
--- /dev/null
+++ b/_data/glossary/code-contributor.yaml
@@ -0,0 +1,11 @@
+id: code-contributor
+name: Code Contributor
+aka:
+ - Community Developer
+tags:
+- community
+- user-type
+short-description: |
+ A person who develops and contributes code to the Kubernetes open source codebase.
+long-description: |
+ They are also an active [community member](#term-community-member) who participates in one or more [Special Interest Groups (SIGs)](#term-sig).
diff --git a/_data/glossary/container.yaml b/_data/glossary/container.yaml
new file mode 100644
index 0000000000..4cc786f7b3
--- /dev/null
+++ b/_data/glossary/container.yaml
@@ -0,0 +1,9 @@
+id: container
+name: Container
+tags:
+- fundamental
+- workload
+short-description: |
+ A lightweight and portable executable image that contains software and all of its dependencies.
+long-description: |
+ Containers decouple applications from underlying host infrastructure to make deployment easier in different cloud or OS environments, and for easier scaling.
diff --git a/_data/glossary/contributor.yaml b/_data/glossary/contributor.yaml
new file mode 100644
index 0000000000..333244466d
--- /dev/null
+++ b/_data/glossary/contributor.yaml
@@ -0,0 +1,8 @@
+id: contributor
+name: Contributor
+tags:
+- community
+short-description: |
+ Someone who donates code, documentation, or their time to help the Kubernetes project or community.
+long-description: |
+ Contributions include pull requests (PRs), issues, feedback, [special interest group (SIG)](#term-sig) participation, or organizing community events.
diff --git a/_data/glossary/cronjob.yaml b/_data/glossary/cronjob.yaml
new file mode 100644
index 0000000000..c220a38f75
--- /dev/null
+++ b/_data/glossary/cronjob.yaml
@@ -0,0 +1,9 @@
+id: cronjob
+name: CronJob
+tags:
+- core-object
+- workload
+short-description: |
+ Manages a [Job](/docs/concepts/jobs/run-to-completion-finite-workloads/) that runs on a periodic schedule.
+long-description: |
+ Similar to a line in a *crontab* file, a [CronJob](/docs/concepts/workloads/controllers/cron-jobs/#writing-a-cron-job-spec) object specifies a schedule using the [Cron](https://en.wikipedia.org/wiki/Cron) format.
diff --git a/_data/glossary/deployment.yaml b/_data/glossary/deployment.yaml
new file mode 100644
index 0000000000..773f2c1518
--- /dev/null
+++ b/_data/glossary/deployment.yaml
@@ -0,0 +1,10 @@
+id: deployment
+name: Deployment
+tags:
+- fundamental
+- core-object
+- workload
+short-description: |
+ An API object that manages a replicated application.
+long-description: |
+ Each replica is represented by a [Pod](#term-pod), and the Pods are distributed among the nodes of a cluster.
diff --git a/_data/glossary/developer.yaml b/_data/glossary/developer.yaml
new file mode 100644
index 0000000000..eb1a68526c
--- /dev/null
+++ b/_data/glossary/developer.yaml
@@ -0,0 +1,15 @@
+id: developer
+name: Developer (disambiguation)
+aka:
+ - Kubernetes Developer
+tags:
+- community
+- user-type
+short-description: |
+ May refer to: [*Application Developer*](#term-application-developer), [*Code Contributor*](#term-code-contributor), or [*Platform Developer*](#term-platform-developer).
+long-description: |
+ This overloaded term may have different meanings depending on the context. It could mean:
+
+ * [**Application Developer**](#term-application-developer): A person who writes an application that runs in a Kubernetes cluster.
+ * [**Code Contributor**](#term-code-contributor): A person who develops and contributes code to the Kubernetes open source codebase.
+ * [**Platform Developer**](#term-platform-developer): A person who customizes the Kubernetes platform to fit the needs of their project—for example, by extending the API.
diff --git a/_data/glossary/downstream.yaml b/_data/glossary/downstream.yaml
new file mode 100644
index 0000000000..2abdd79fbc
--- /dev/null
+++ b/_data/glossary/downstream.yaml
@@ -0,0 +1,11 @@
+id: downstream
+name: Downstream (disambiguation)
+related:
+- upstream
+tags:
+- community
+short-description: |
+ May refer to: code in the Kubernetes ecosystem that depends upon the core Kubernetes codebase or a forked repo.
+long-description: |
+ * In the **Kubernetes Community**: Conversations often use *downstream* to mean the ecosystem, code, or third-party tools that rely on the core Kubernetes codebase. For example, a new feature in Kubernetes may be adopted by applications *downstream* to improve their functionality.
+ * In **GitHub** or **git**: The convention is to refer to a forked repo as *downstream*, whereas the source repo is considered *upstream*.
diff --git a/_data/glossary/helm-chart.yaml b/_data/glossary/helm-chart.yaml
new file mode 100644
index 0000000000..9688a6f716
--- /dev/null
+++ b/_data/glossary/helm-chart.yaml
@@ -0,0 +1,9 @@
+id: helm-chart
+name: Helm Chart
+tags:
+- tool
+short-description: |
+ A package of pre-configured Kubernetes resources that can be managed with the Helm tool.
+long-description: |
+ Charts provide a reproducible way of creating and sharing Kubernetes applications.
+ A single chart can be used to deploy something simple, like a memcached Pod, or something complex, like a full web app stack with HTTP servers, databases, caches, and so on.
diff --git a/_data/glossary/ingress.yaml b/_data/glossary/ingress.yaml
new file mode 100644
index 0000000000..06864f8bcb
--- /dev/null
+++ b/_data/glossary/ingress.yaml
@@ -0,0 +1,10 @@
+id: ingress
+name: Ingress
+tags:
+- networking
+- architecture
+- extension
+short-description: |
+ An API object that manages external access to the services in a cluster, typically HTTP.
+long-description: |
+ Ingress can provide load balancing, SSL termination and name-based virtual hosting.
diff --git a/_data/glossary/istio.yaml b/_data/glossary/istio.yaml
new file mode 100644
index 0000000000..81056cfac4
--- /dev/null
+++ b/_data/glossary/istio.yaml
@@ -0,0 +1,12 @@
+id: istio
+name: Istio
+tags:
+- networking
+- architecture
+- extension
+short-description: |
+ An open platform (not Kubernetes-specific) that provides a uniform way to integrate microservices, manage traffic flow, enforce policies, and aggregate telemetry data.
+long-description: >
+ Adding Istio does not require changing application code.
+ It is a layer of infrastructure between a service and the network, which when combined with service deployments, is commonly referred to as a service mesh.
+ Istio's control plane abstracts away the underlying cluster management platform, which may be Kubernetes, Mesosphere, etc.
diff --git a/_data/glossary/kops.yaml b/_data/glossary/kops.yaml
new file mode 100644
index 0000000000..b431e40616
--- /dev/null
+++ b/_data/glossary/kops.yaml
@@ -0,0 +1,18 @@
+id: kops
+name: Kops
+tags:
+- tool
+- operation
+short-description: |
+ A CLI tool that helps you create, destroy, upgrade and maintain production-grade, highly available, Kubernetes clusters. *NOTE: Officially supports AWS only, with GCE and VMware vSphere in alpha*.
+long-description: |
+ `kops` provisions your cluster with:
+
+ * Fully automated installation
+ * DNS-based cluster identification
+ * Self-healing: everything runs in Auto-Scaling Groups
+ * Limited OS support (Debian preferred, Ubuntu 16.04 supported, early support for CentOS & RHEL)
+ * High availability (HA) support
+ * The ability to directly provision, or generate terraform manifests
+
+ You can also build your own cluster using [`kubeadm`](#term-kubeadm) as a building block. `kops` builds on the kubeadm work.
diff --git a/_data/glossary/kubeadm.yaml b/_data/glossary/kubeadm.yaml
new file mode 100644
index 0000000000..ce2a6524d5
--- /dev/null
+++ b/_data/glossary/kubeadm.yaml
@@ -0,0 +1,9 @@
+id: kubeadm
+name: Kubeadm
+tags:
+- tool
+- operation
+short-description: |
+ A tool for quickly installing Kubernetes and setting up a secure cluster.
+long-description: |
+ You can use kubeadm to install both the control plane and the worker node components.
diff --git a/_data/glossary/kubectl.yaml b/_data/glossary/kubectl.yaml
new file mode 100644
index 0000000000..05711e8013
--- /dev/null
+++ b/_data/glossary/kubectl.yaml
@@ -0,0 +1,9 @@
+id: kubectl
+name: Kubectl
+tags:
+- tool
+- fundamental
+short-description: |
+ A command line tool for communicating with a [Kubernetes API](#term-kubernetes-api) server.
+long-description: |
+ You can use kubectl to create, inspect, update, and delete Kubernetes objects.
diff --git a/_data/glossary/kubernetes-api.yaml b/_data/glossary/kubernetes-api.yaml
new file mode 100644
index 0000000000..74169970bf
--- /dev/null
+++ b/_data/glossary/kubernetes-api.yaml
@@ -0,0 +1,12 @@
+id: kubernetes-api
+name: Kubernetes API
+tags:
+- fundamental
+- architecture
+short-description: |
+ The application that serves Kubernetes functionality through a RESTful interface and stores the state of the cluster.
+long-description: >
+ Kubernetes resources and "records of intent" are all stored as API objects, and modified via RESTful calls to the API.
+ The API allows configuration to be managed in a declarative way.
+ Users can interact with the Kubernetes API directly, or via tools like `kubectl`.
+ The core Kubernetes API is flexible and can also be extended to support custom resources.
diff --git a/_data/glossary/maintainer.yaml b/_data/glossary/maintainer.yaml
new file mode 100644
index 0000000000..fabfb6551c
--- /dev/null
+++ b/_data/glossary/maintainer.yaml
@@ -0,0 +1,8 @@
+id: maintainer
+name: Maintainer
+tags:
+- community
+short-description: |
+ A highly experienced [contributor](#term-contributor), active in multiple areas of Kubernetes, who has cross-area ownership and write access to a project's GitHub repository.
+long-description: |
+ Maintainers work holistically across the project to maintain its health and success and have made substantial contributions, both through code development and broader organizational efforts.
diff --git a/_data/glossary/member.yaml b/_data/glossary/member.yaml
new file mode 100644
index 0000000000..3e4866625f
--- /dev/null
+++ b/_data/glossary/member.yaml
@@ -0,0 +1,10 @@
+id: member
+name: Member
+tags:
+- community
+short-description: |
+ A continuously active [contributor](#term-contributor) in the K8s community.
+long-description: >
+ Members can have issues and PRs assigned to them and participate in [special interest groups (SIGs)](#term-sig) through GitHub teams.
+ Pre-submit tests are automatically run for members' PRs.
+ A member is expected to remain an active contributor to the community.
diff --git a/_data/glossary/minikube.yaml b/_data/glossary/minikube.yaml
new file mode 100644
index 0000000000..eccbabadd9
--- /dev/null
+++ b/_data/glossary/minikube.yaml
@@ -0,0 +1,9 @@
+id: minikube
+name: Minikube
+tags:
+- fundamental
+- tool
+short-description: |
+ A tool for running Kubernetes locally.
+long-description: |
+ Minikube runs a single-node cluster inside a VM on your computer.
diff --git a/_data/glossary/platform-developer.yaml b/_data/glossary/platform-developer.yaml
new file mode 100644
index 0000000000..ef4352c98e
--- /dev/null
+++ b/_data/glossary/platform-developer.yaml
@@ -0,0 +1,10 @@
+id: platform-developer
+name: Platform Developer
+aka:
+ - Kubernetes Developer
+tags:
+ - user-type
+short-description: |
+ A person who customizes the Kubernetes platform to fit the needs of their project.
+long-description: >
+ A platform developer may, for example, use [Custom Resources](/docs/concepts/api-extension/custom-resources/) or [Extend the Kubernetes API with the aggregation layer](/docs/concepts/api-extension/apiserver-aggregation/) to add functionality to their instance of Kubernetes, specifically for their application.
diff --git a/_data/glossary/pod.yaml b/_data/glossary/pod.yaml
new file mode 100644
index 0000000000..2a22384697
--- /dev/null
+++ b/_data/glossary/pod.yaml
@@ -0,0 +1,16 @@
+id: pod
+name: Pod
+related:
+- container
+- sidecar
+- deployment
+- statefulset
+tags:
+- core-object
+- fundamental
+short-description: |
+ The smallest and simplest Kubernetes object. A Pod represents a set of running [containers](#term-container) on your cluster.
+long-description: >
+ A Pod is typically set up to run a single primary container.
+ It can also run optional sidecar containers that add supplementary features like logging.
+ Pods are commonly managed by a [Deployment](#term-deployment).
diff --git a/_data/glossary/rbac.yaml b/_data/glossary/rbac.yaml
new file mode 100644
index 0000000000..af158dc54e
--- /dev/null
+++ b/_data/glossary/rbac.yaml
@@ -0,0 +1,9 @@
+id: rbac
+name: RBAC (Role-Based Access Control)
+tags:
+- security
+- fundamental
+short-description: |
+ Manages authorization decisions, allowing admins to dynamically configure access policies through the [Kubernetes API](#term-kubernetes-api).
+long-description: |
+ RBAC utilizes *roles*, which contain permission rules, and *role bindings*, which grant the permissions defined in a role to a set of users.
diff --git a/_data/glossary/reviewer.yaml b/_data/glossary/reviewer.yaml
new file mode 100644
index 0000000000..50b189d117
--- /dev/null
+++ b/_data/glossary/reviewer.yaml
@@ -0,0 +1,8 @@
+id: reviewer
+name: Reviewer
+tags:
+- community
+short-description: |
+ A person who reviews code for quality and correctness on some part of the project.
+long-description: |
+ Reviewers are knowledgeable about both the codebase and software engineering principles. Reviewer status is scoped to a part of the codebase.
diff --git a/_data/glossary/service.yaml b/_data/glossary/service.yaml
new file mode 100644
index 0000000000..82f3998f6b
--- /dev/null
+++ b/_data/glossary/service.yaml
@@ -0,0 +1,9 @@
+id: service
+name: Service
+tags:
+- fundamental
+- core-object
+short-description: |
+ An API object that describes how to access applications, such as a set of [Pods](#term-pod), and can describe ports and load-balancers.
+long-description: |
+ The access point can be internal or external to the cluster.
diff --git a/_data/glossary/sig.yaml b/_data/glossary/sig.yaml
new file mode 100644
index 0000000000..bc365e677f
--- /dev/null
+++ b/_data/glossary/sig.yaml
@@ -0,0 +1,11 @@
+id: sig
+name: SIG (special interest group)
+tags:
+- community
+short-description: |
+ [Members](#term-member) who collectively manage an ongoing piece or aspect of the larger Kubernetes open source project.
+long-description: >
+ Members within a SIG have a shared interest in advancing a specific area, such as architecture, API machinery, or documentation.
+ SIGs must follow the [SIG Governance](https://github.com/kubernetes/community/blob/master/sig-governance.md) guidelines but can have their own contribution policy and channels of communication.
+
+ 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).
diff --git a/_data/glossary/statefulset.yml b/_data/glossary/statefulset.yml
index 3f05200012..c6bc43cb71 100644
--- a/_data/glossary/statefulset.yml
+++ b/_data/glossary/statefulset.yml
@@ -1,18 +1,18 @@
id: statefulset
name: StatefulSet
-formerly:
+aka:
- PetSet
related:
-- Deployment
-- Pod
+- deployment
+- pod
tags:
-- Storage
-- Workload
-- API Object
+- core-object
+- workload
+- storage
short-description: |
- Manage the deployment and scaling of a set of Pods, *and provide guarantees about ordering*. They do so by maintaining a *unique*, sticky identity for each of their Pods.
+ Manages the deployment and scaling of a set of [Pods](#term-pod), *and provides guarantees about the ordering and uniqueness* of these Pods.
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](#term-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.
- StatefulSets also operate according to the Controller pattern. You define your desired state in a StatefulSet *object*, and the StatefulSet *controller* makes any necessary updates to the get there from the current state.
+ A StatefulSet operates under the same pattern as any other Controller. You define your desired state in a StatefulSet *object*, and the StatefulSet *controller* makes any necessary updates to get there from the current state.
diff --git a/_data/glossary/upstream.yaml b/_data/glossary/upstream.yaml
new file mode 100644
index 0000000000..70b3e4cef4
--- /dev/null
+++ b/_data/glossary/upstream.yaml
@@ -0,0 +1,11 @@
+id: upstream
+name: Upstream (disambiguation)
+related:
+- downstream
+tags:
+- community
+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 relies upon. For example, [community members](#term-member) 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.
+ * In **GitHub** or **git**: The convention is to refer to a source repo as *upstream*, whereas the forked repo is considered *downstream*.
diff --git a/_data/glossary/wg.yaml b/_data/glossary/wg.yaml
new file mode 100644
index 0000000000..5d7e5ee28e
--- /dev/null
+++ b/_data/glossary/wg.yaml
@@ -0,0 +1,10 @@
+id: wg
+name: WG (working group)
+tags:
+- community
+short-description: |
+ Facilitates the discussion and/or implementation of a short-lived, narrow, or decoupled project for a committee, [SIG](#term-sig), or cross-SIG effort.
+long-description: |
+ Working groups 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).
diff --git a/_data/reference.yml b/_data/reference.yml
index 28e2d81f03..48abc0b2d6 100644
--- a/_data/reference.yml
+++ b/_data/reference.yml
@@ -2,6 +2,7 @@ bigheader: "Reference Documentation"
abstract: "Design docs, concept definitions, and references for APIs and CLIs."
toc:
- docs/reference/index.md
+- docs/reference/glossary.md
- title: Using the API
section:
@@ -108,5 +109,3 @@ toc:
- title: Kubernetes Issue Tracker on GitHub
path: https://github.com/kubernetes/kubernetes/issues/
- docs/reference/security.md
-
-
diff --git a/_includes/templates/glossary/README.md b/_includes/templates/glossary/README.md
index 9d3d49d48e..453c23fdc7 100644
--- a/_includes/templates/glossary/README.md
+++ b/_includes/templates/glossary/README.md
@@ -2,17 +2,19 @@
To write a glossary snippet, start with a copy of the template, [`/_data/glossary/_example.yml`](/_data/glossary/_example.yml). Make sure to provide (or omit) values for the following fields:
-* (Required) `id`.
+* (Required) `id`
* This field must match the name of the glossary file itself (without the `*.yml` extension). It is *not* intended to be displayed to users, and is only used programmatically.
-* (Required) `name`.
+* (Required) `name`
* The name of the term.
-* (Required) `tags`.
+* (Required) `tags`
* Must be one of the tags listed in kubernetes.github.io/_data/canonical-terms-tags.yml.
-* (Required) `short description`.
+* (Required) `short description`
* Make sure to replace the instructional text in the template with your content.
-* (Optional) `formerly` and `related`.
- * If you do not provide these values, remove the fields.
-* (Optional) `long description`.
+* (Optional) `aka`
+ * These synonyms do not need to be glossary terms themselves (if they are deprecated), and can include spaces.
+* (Optional) `related`
+ * These should be the `id`s (not the `names`) of related glossary terms.
+* (Optional) `long description`
* If you do not provide a long description, remove the field -- that is, the complete key-value pair.
The `_example.yml` template also contains basic information about how to write your snippet. For additional guidance, continue reading this readme.
diff --git a/_layouts/docwithnav.html b/_layouts/docwithnav.html
index b57af76f74..f10f958bec 100755
--- a/_layouts/docwithnav.html
+++ b/_layouts/docwithnav.html
@@ -67,7 +67,9 @@
Create an Issue
- Edit this Page
+ {% unless page.noedit %}
+ Edit this Page
+ {% endunless %}
{% endif %}
diff --git a/css/glossary.css b/css/glossary.css
new file mode 100644
index 0000000000..67d536ccf9
--- /dev/null
+++ b/css/glossary.css
@@ -0,0 +1,64 @@
+.preview-text p {
+ display: inline;
+}
+
+.no-underline {
+ text-decoration: none !important;
+}
+
+.hide {
+ display: none !important;
+}
+
+.permalink {
+ background-image: url(../images/link.png);
+ background-repeat: no-repeat;
+ display: inline-block;
+ color: transparent;
+ width: 20px;
+ margin-left: 10px;
+}
+
+.term-anchor {
+ display: block;
+ position: relative;
+ top: -90px;
+ visibility: hidden;
+}
+
+.tag-option {
+ padding: 5px;
+ margin: 10px;
+ float:left;
+}
+
+.canonical-tag {
+ color: white;
+ background-color: #b7c8e8;
+}
+
+.canonical-tag a {
+ color: inherit;
+ text-decoration: none !important;
+}
+
+.active-tag {
+ background-color: #3371e3;
+}
+
+.invisible {
+ visibility: hidden;
+}
+
+#tag-container {
+ float: left;
+ border-top: 1px solid #8c8c8c;
+ border-bottom: 1px solid #8c8c8c;
+ padding: 7px 0px;
+ margin: 25px 0px;
+}
+
+.tag-description {
+ text-align: center;
+ margin: 5px 0px;
+}
diff --git a/docs/reference/glossary.md b/docs/reference/glossary.md
new file mode 100644
index 0000000000..ceb1dc4dd3
--- /dev/null
+++ b/docs/reference/glossary.md
@@ -0,0 +1,66 @@
+---
+approvers:
+- chenopis
+- abiogenesis-now
+title: Standardized Glossary
+noedit: true
+default_active_tag: fundamental
+---
+
+
+
+
This glossary is intended to be a comprehensive, standardized list of Kubernetes terminology. It includes technical terms that are specific to K8s, as well as more general terms that provide useful context.
+ +Filter terms according to their tags:
+Click on the [+] indicators below to get a longer explanation for any particular term.
+ +{% assign glossary_terms = site.data.glossary | where_exp: "term", "term.id != '_example'" | sort: 'name' %} + +