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