kubectl explain: an affront to basic decency
This commit is contained in:
64
virtualization/kubernetes/kubernetes_explain.md
Normal file
64
virtualization/kubernetes/kubernetes_explain.md
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
---
|
||||||
|
title: "Kubernetes Docs"
|
||||||
|
tags: [ "virtualization", "kubernetes", "WTFM", "hosts", "DNS" ]
|
||||||
|
requires: [ "Kubernetes Basics" ]
|
||||||
|
---
|
||||||
|
|
||||||
|
`kubectl` provides easy high-level overviews:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
kubectl config view
|
||||||
|
kubectl cluster-info
|
||||||
|
```
|
||||||
|
|
||||||
|
Unfortunately, the documentation commands work less well.
|
||||||
|
|
||||||
|
# Kube-Explain
|
||||||
|
|
||||||
|
The `kubectl explain` resources cannot use tab-completion.
|
||||||
|
But you can find the same resources listed with `api-resources`, and use a fuzzy-finder, to get the same effect.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
t="$(kubectl api-resources | fzy | gawk '{print $1}')"
|
||||||
|
kubectl explain ${t}
|
||||||
|
```
|
||||||
|
|
||||||
|
The documentation is in a classic style, which could only be improved by deletion.
|
||||||
|
Take this fragment from `kubectl explain namespaces`:
|
||||||
|
|
||||||
|
```
|
||||||
|
DESCRIPTION:
|
||||||
|
Namespace provides a scope for Names. Use of multiple namespaces is
|
||||||
|
optional.
|
||||||
|
```
|
||||||
|
|
||||||
|
- Sentence 1: A 'name-space' is a space for names.
|
||||||
|
- Sentence 2: If you create a namespace, you will not receive an error due to not having a second namespace. This is also the case for deployments, variables, and files which begin with the letter 'P', but the writer was being paid per word.
|
||||||
|
|
||||||
|
Continuing...
|
||||||
|
|
||||||
|
```
|
||||||
|
metadata <ObjectMeta>
|
||||||
|
Standard object's metadata. More info:
|
||||||
|
https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
|
||||||
|
```
|
||||||
|
|
||||||
|
So a namespace has metadata, which has something in diamond-brackets called `ObjectMeta`.
|
||||||
|
We should understand this as 'normal metadata for an object', and the author promises us more information.
|
||||||
|
But only a fool would trust that link, as the author's a hack, without even the flimsy excuse of being left alone with ChatGPT (the docs existed before LLMs became uncool).
|
||||||
|
|
||||||
|
Completing this morality tale, entitled '*Why Nobody Reads the Docs*', we arrive at the end of Kubernetes' namespace documentation:
|
||||||
|
|
||||||
|
```
|
||||||
|
status <NamespaceStatus>
|
||||||
|
Status describes the current status of a Namespace. More info:
|
||||||
|
https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
|
||||||
|
```
|
||||||
|
|
||||||
|
Of course this is wrong.
|
||||||
|
The sentence should read:
|
||||||
|
|
||||||
|
```
|
||||||
|
'Status' describes the current status of a Namespace.
|
||||||
|
```
|
||||||
|
|
Reference in New Issue
Block a user