├── LICENSE ├── Makefile ├── NEWS.md ├── README.md ├── generators ├── docbook.go ├── gen.go ├── read_cmd.go ├── toc.go ├── types.go ├── v1_17 │ └── toc.yaml ├── v1_18 │ └── toc.yaml ├── v1_19 │ └── toc.yaml └── v1_31 │ └── toc.yaml ├── go.mod ├── go.sum ├── main.go ├── static └── license.xml ├── upgrade └── upgrade.go └── xsl ├── api-6x9in.xsl └── api.xsl /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright [yyyy] [name of copyright owner] 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | # Copyright 2019 Philippe Martin 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | default: 16 | @echo "commands: clean, docbook, pdf" 17 | 18 | clean: 19 | rm -rf build 20 | 21 | docbook: clean build/index.xml 22 | 23 | build/index.xml: $(wildcard *.go **/*.go) generators/v1_19/toc.yaml 24 | mkdir -p build 25 | ~/Documents/Perso/kubernetes/_output/local/go/bin/kubectl-reference --kubernetes-version v1_19 > build/index.xml 26 | 27 | FORMAT ?= USletter 28 | pdf: build/index.xml 29 | (cd build && \ 30 | mkdir -p pdf-$(FORMAT) && \ 31 | cd pdf-$(FORMAT) && \ 32 | xsltproc --stringparam fop1.extensions 1 --stringparam paper.type $(FORMAT) -o index-$(FORMAT).fo ../../xsl/api.xsl ../index.xml && \ 33 | fop -pdf index-$(FORMAT).pdf -fo index-$(FORMAT).fo && \ 34 | rm index-$(FORMAT).fo) 35 | 36 | pdf-6x9in: build/index.xml 37 | (cd build && \ 38 | mkdir -p pdf && \ 39 | cd pdf && \ 40 | xsltproc --stringparam fop1.extensions 1 -o index.fo ../../xsl/api-6x9in.xsl ../index.xml && \ 41 | fop -pdf index.pdf -fo index.fo && \ 42 | rm index.fo) 43 | 44 | test: 45 | @echo $(FORMAT) 46 | -------------------------------------------------------------------------------- /NEWS.md: -------------------------------------------------------------------------------- 1 | # News 2 | 3 | ## New in v1.19 4 | 5 | - new common option `field-manager` 6 | * new option `port` in `create/deployment` 7 | * new option `replicas` in `create/deployment` 8 | * new option `privileged` in `run` 9 | - new option `dry-run` in `scale` 10 | - new option `selector` in `diff` 11 | * new option `list` in `annotate` 12 | * new option `copy-to` in `alpha/debug` 13 | * new option `replace` in `alpha/debug` 14 | * new option `same-node` in `alpha/debug` 15 | * new option `share-processes` in `alpha/debug` 16 | - new arguments `COMMAND args...` to `create deployment` 17 | - removed option `generator` from `create/clusterrolebinding` 18 | - removed option `export` from `get` 19 | - removed option `heapster-namespace` from `top/pod` 20 | - removed option `heapster-port` from from `top/pod` 21 | - removed option `heapster-scheme` from `top/pod` 22 | - removed option `heapster-service` from `top/pod` 23 | - removed option `server-dry-run` from `apply` 24 | 25 | ## New in v1.18 26 | 27 | - `dry-run` options accept `server`/`client`/`none` instead of `true`/`false` 28 | - new option `dry-run` in `delete` 29 | - new option `dry-run` in `replace` 30 | - new option `dry-run` in `taint` 31 | - new option `filename` in `exec` 32 | - new option `disable-eviction` in `drain` 33 | - new option `skip-wait-for-delete-timeout` in `drain` 34 | - new command `alpha debug` 35 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Kubectl Reference 2 | 3 | This tool creates a DocBook documentation from the Kubectl inline help. 4 | 5 | ``` 6 | # Create the Docbook file 7 | $ make docbook 8 | 9 | # Create a PDF file, in USletter format 10 | $ make pdf 11 | 12 | # Create a PDF file, in A4 format 13 | $ make pdf FORMAT=A4 14 | ``` 15 | 16 | ## Get a printed book at: 17 | 18 | - US: https://www.amazon.com/dp/B088N615VS 19 | - UK: https://www.amazon.co.uk/dp/B088N615VS 20 | - DE: https://www.amazon.de/dp/B088N615VS 21 | - FR: https://www.amazon.fr/dp/B088N615VS 22 | - ES: https://www.amazon.es/dp/B088N615VS 23 | - IT: https://www.amazon.it/dp/B088N615VS 24 | - JP: https://www.amazon.co.jp/dp/B088N615VS 25 | - CA: https://www.amazon.ca/dp/B088N615VS 26 | -------------------------------------------------------------------------------- /generators/docbook.go: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2019 Philippe Martin. 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | package generators 17 | 18 | import ( 19 | "bytes" 20 | "encoding/xml" 21 | "fmt" 22 | "io" 23 | "os" 24 | "strings" 25 | 26 | "github.com/jinzhu/copier" 27 | ) 28 | 29 | func (o *Command) AsDocbook(w io.Writer, config *ToCCommand) { 30 | refname := o.Name 31 | if len(o.Path) > 0 { 32 | refname = strings.Replace(o.Path, "/", " ", 1) + " " + refname 33 | } 34 | refpurpose := o.Synopsis 35 | fmt.Fprintf(w, ` 36 | 37 | %s 38 | 39 | %s 40 | 41 | 42 | Usage 43 | 44 | 45 | kubectl %s 46 | `, refname, refpurpose, refname) 47 | 48 | for _, arg := range config.Args { 49 | if !arg.End { 50 | arg.AsDocbook(w) 51 | } 52 | } 53 | fmt.Fprint(w, " \n") 54 | 55 | for _, group := range config.OptionsGroups { 56 | for _, tocOption := range group.Options { 57 | option := o.GetOption(tocOption.Name) 58 | if option == nil { 59 | option = o.GetInheritedOption(tocOption.Name) 60 | if option == nil { 61 | fmt.Printf("option %s of command %s not found\n", tocOption.Name, o.Name) 62 | os.Exit(1) 63 | } 64 | } 65 | option.AsDocbook(w, &tocOption) 66 | } 67 | fmt.Fprint(w, " \n") 68 | } 69 | 70 | for _, arg := range config.Args { 71 | if arg.End { 72 | arg.AsDocbook(w) 73 | } 74 | } 75 | 76 | fmt.Fprint(w, ` 77 | 78 | `) 79 | 80 | if *ShowUsage { 81 | // Description 82 | fmt.Fprintf(w, ` Original Usage 83 | %s 84 | `, escapeXml(o.Usage)) 85 | 86 | } 87 | 88 | // Description 89 | fmt.Fprint(w, ` 90 | Description 91 | `) 92 | 93 | desc := o.Description 94 | paras := strings.Split(desc, "\n\n") 95 | for _, para := range paras { 96 | fmt.Fprintf(w, " %s\n", escapeXml(para)) 97 | } 98 | fmt.Fprint(w, ` 99 | `) 100 | 101 | // Options 102 | if len(config.OptionsGroups) > 0 { 103 | fmt.Fprint(w, ` 104 | Options 105 | `) 106 | 107 | for _, group := range config.OptionsGroups { 108 | if len(group.Name) > 0 { 109 | fmt.Fprintf(w, " %s\n", group.Name) 110 | } 111 | fmt.Fprintf(w, " \n") 112 | for _, tocOption := range group.Options { 113 | option := o.GetOption(tocOption.Name) 114 | if option == nil { 115 | option = o.GetInheritedOption(tocOption.Name) 116 | if option == nil { 117 | fmt.Printf("option %s of command %s not found\n", tocOption.Name, o.Name) 118 | os.Exit(1) 119 | } 120 | } 121 | option.AsDocbookDetails(w, &tocOption) 122 | } 123 | fmt.Fprintf(w, " \n") 124 | } 125 | 126 | fmt.Fprint(w, ` 127 | `) 128 | } 129 | 130 | // Examples 131 | if len(o.Examples) > 0 { 132 | fmt.Fprint(w, ` 133 | Examples 134 | `) 135 | for _, example := range o.Examples { 136 | fmt.Fprintf(w, " %s\n", example.Title) 137 | fmt.Fprint(w, " ") 138 | fmt.Fprintf(w, "%s", example.Content) 139 | fmt.Fprint(w, "\n") 140 | 141 | } 142 | fmt.Fprint(w, ` 143 | `) 144 | } 145 | 146 | fmt.Fprint(w, ` 147 | `) 148 | } 149 | 150 | func (o *Arg) AsDocbook(w io.Writer) { 151 | choice := "plain" 152 | if o.Choice != nil { 153 | choice = *o.Choice 154 | } 155 | rep := "norepeat" 156 | if o.Rep != nil { 157 | rep = *o.Rep 158 | } 159 | fmt.Fprintf(w, " %s\n", choice, rep, string(o.Name)) 160 | } 161 | 162 | func (op *Option) AsDocbook(w io.Writer, config *ToCOption) { 163 | var o Option 164 | copier.Copy(&o, op) 165 | 166 | if config.Type != nil { 167 | o.Type = *config.Type 168 | } 169 | if config.Usage != nil { 170 | o.Usage = *config.Usage 171 | } 172 | if config.Shorthand != nil { 173 | o.Shorthand = *config.Shorthand 174 | } 175 | if config.Default != nil { 176 | o.DefaultValue = *config.Default 177 | } 178 | choice := "opt" 179 | if config.Required { 180 | choice = "plain" 181 | } 182 | 183 | optionName := "--" + o.Name + "=" 184 | if len(o.Shorthand) > 0 { 185 | optionName = "-" + o.Shorthand + " " 186 | } 187 | 188 | switch o.Type { 189 | case "bool", "tristate": 190 | var value string 191 | if len(o.Shorthand) > 0 && o.DefaultValue == "false" { 192 | value = "-" + o.Shorthand 193 | } else { 194 | value = "--" + o.Name 195 | if o.DefaultValue == "true" { 196 | value += "=false" 197 | } 198 | } 199 | fmt.Fprintf(w, " %s\n", choice, value) 200 | 201 | case "string": 202 | value := optionName + "value" 203 | fmt.Fprintf(w, " %s\n", choice, value) 204 | 205 | case "int32", "int64", "int", "duration": 206 | value := optionName + "value" 207 | fmt.Fprintf(w, " %s\n", choice, value) 208 | 209 | case "stringArray": 210 | if config.Required { 211 | choice = "req" 212 | } 213 | value := optionName + "value" 214 | fmt.Fprintf(w, " %s\n", choice, value) 215 | 216 | case "stringToString": 217 | value := optionName + "key1=value1,keyN=valueN" 218 | fmt.Fprintf(w, " %s\n", choice, value) 219 | 220 | case "stringSlice": 221 | value := optionName + "value1,valueN" 222 | fmt.Fprintf(w, " %s\n", choice, value) 223 | 224 | case "mapStringString": 225 | value := optionName + "value" 226 | fmt.Fprintf(w, " %s\n", choice, value) 227 | 228 | default: 229 | fmt.Fprintf(w, " --%s\n", o.Name) 230 | } 231 | } 232 | 233 | func (op *Option) AsDocbookDetails(w io.Writer, config *ToCOption) { 234 | 235 | var o Option 236 | copier.Copy(&o, op) 237 | 238 | if config.Type != nil { 239 | o.Type = *config.Type 240 | } 241 | if config.Usage != nil { 242 | o.Usage = *config.Usage 243 | } 244 | if config.Shorthand != nil { 245 | o.Shorthand = *config.Shorthand 246 | } 247 | if config.Default != nil { 248 | o.DefaultValue = *config.Default 249 | } 250 | 251 | fmt.Fprintf(w, " \n") 252 | fmt.Fprintf(w, " ") 253 | 254 | value := "--" + o.Name 255 | if len(o.Shorthand) > 0 { 256 | value = "-" + o.Shorthand + " | " + value 257 | } 258 | fmt.Fprint(w, value) 259 | 260 | var def string 261 | if len(o.DefaultValue) > 0 && o.DefaultValue != "[]" { 262 | def = fmt.Sprintf(", defaults to %s", o.DefaultValue) 263 | } 264 | fmt.Fprintf(w, " (%s%s)\n", o.Type, def) 265 | fmt.Fprintf(w, " %s\n", escapeXml(o.Usage)) 266 | fmt.Fprintf(w, " \n") 267 | } 268 | 269 | func escapeXml(s string) string { 270 | var b []byte 271 | buf := bytes.NewBuffer(b) 272 | xml.EscapeText(buf, []byte(s)) 273 | return buf.String() 274 | } 275 | -------------------------------------------------------------------------------- /generators/gen.go: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2016 The Kubernetes Authors. 3 | Copyright 2019 Philippe Martin 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | 18 | package generators 19 | 20 | import ( 21 | "bufio" 22 | "flag" 23 | "fmt" 24 | "io" 25 | "io/ioutil" 26 | "os" 27 | "path/filepath" 28 | 29 | "gopkg.in/yaml.v2" 30 | ) 31 | 32 | var KubernetesVersion = flag.String("kubernetes-version", "", "Version of Kubernetes to generate docs for.") 33 | 34 | var GenKubectlDir = flag.String("gen-kubectl-dir", "generators", "Directory containing kubectl files") 35 | 36 | var ShowUsage = flag.Bool("show-usage", false, "Show original usage (for debugging)") 37 | 38 | func getTocFile() string { 39 | return filepath.Join(*GenKubectlDir, *KubernetesVersion, "toc.yaml") 40 | } 41 | 42 | func getStaticIncludesDir() string { 43 | return filepath.Join(*GenKubectlDir, *KubernetesVersion, "static_includes") 44 | } 45 | 46 | func AsDocbook() { 47 | 48 | f, err := os.Create("build/index.xml") 49 | if err != nil { 50 | panic(err) 51 | } 52 | defer f.Close() 53 | 54 | fmt.Fprintf(f, ` 55 | 57 | 58 | 59 | Kubectl Reference 60 | 61 | v1.19 62 | 63 | By the Kubernetes Authors 64 | 65 | Edited and published by Philippe Martin 66 | 67 | 68 | 2020 69 | 70 | The Kubernetes Authors 71 | 72 | 73 | 74 | Permission is granted to copy, distribute and/or modify this 75 | document under the terms of the Apache License version 2. A copy of the 76 | license is included in . 77 | 78 | 79 | 80 | The tool used to generate this document is available at 81 | https://github.com/feloy/kubectl-reference 82 | 83 | 84 | `) 85 | 86 | spec := GetSpec() 87 | 88 | toc := ToC{} 89 | if len(getTocFile()) < 1 { 90 | fmt.Printf("Must specify --toc-file.\n") 91 | os.Exit(2) 92 | } 93 | 94 | contents, err := ioutil.ReadFile(getTocFile()) 95 | if err != nil { 96 | fmt.Printf("Failed to read yaml file %s: %v", getTocFile(), err) 97 | } 98 | 99 | err = yaml.Unmarshal(contents, &toc) 100 | if err != nil { 101 | fmt.Println(err) 102 | os.Exit(1) 103 | } 104 | 105 | for _, category := range toc.Categories { 106 | fmt.Fprintf(f, " %s\n", category.Name) 107 | 108 | for _, tocCommand := range category.Commands { 109 | command := spec.GetCommand(tocCommand.Name) 110 | if command == nil { 111 | fmt.Printf("command %s not found", tocCommand.Name) 112 | os.Exit(1) 113 | } 114 | command.AsDocbook(f, tocCommand) 115 | } 116 | fmt.Fprintf(f, ``) 117 | } 118 | 119 | addLicense(f) 120 | 121 | fmt.Fprintf(f, ``) 122 | } 123 | 124 | func addLicense(w io.Writer) { 125 | f, err := os.Open("./static/license.xml") 126 | if err != nil { 127 | panic(err) 128 | } 129 | defer f.Close() 130 | 131 | scanner := bufio.NewScanner(f) 132 | 133 | for scanner.Scan() { 134 | w.Write(scanner.Bytes()) 135 | w.Write([]byte("\n")) 136 | } 137 | } 138 | -------------------------------------------------------------------------------- /generators/read_cmd.go: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2016 The Kubernetes Authors. 3 | Copyright 2019 Philippe Martin 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | 18 | package generators 19 | 20 | import ( 21 | // "io/ioutil" 22 | // "os" 23 | 24 | "sort" 25 | "strings" 26 | 27 | "github.com/spf13/cobra" 28 | "github.com/spf13/pflag" 29 | 30 | "k8s.io/kubectl/pkg/cmd" 31 | // cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" 32 | ) 33 | 34 | func GetSpec() KubectlSpec { 35 | // Initialize a kubectl command that we can use to get the help documentation 36 | kubectl := cmd.NewDefaultKubectlCommand() 37 | 38 | // Create the structural representation 39 | return NewKubectlSpec(kubectl) 40 | } 41 | 42 | func NewKubectlSpec(c *cobra.Command) KubectlSpec { 43 | return KubectlSpec{ 44 | TopLevelCommandGroups: []TopLevelCommands{NewTopLevelCommands(c.Commands())}, 45 | } 46 | } 47 | 48 | func NewTopLevelCommands(cs []*cobra.Command) TopLevelCommands { 49 | tlc := TopLevelCommands{} 50 | for _, c := range cs { 51 | tlc.Commands = append(tlc.Commands, NewTopLevelCommand(c)) 52 | } 53 | sort.Sort(tlc) 54 | return tlc 55 | } 56 | 57 | func NewTopLevelCommand(c *cobra.Command) TopLevelCommand { 58 | result := TopLevelCommand{ 59 | MainCommand: NewCommand(c, ""), 60 | } 61 | for _, sub := range c.Commands() { 62 | result.SubCommands = append(result.SubCommands, NewSubCommands(sub, c.Name())...) 63 | } 64 | sort.Sort(result.SubCommands) 65 | return result 66 | } 67 | 68 | // Parse the Options 69 | func NewOptions(flags *pflag.FlagSet) Options { 70 | result := Options{} 71 | flags.VisitAll(func(flag *pflag.Flag) { 72 | opt := &Option{ 73 | Name: flag.Name, 74 | Shorthand: flag.Shorthand, 75 | DefaultValue: flag.DefValue, 76 | Usage: flag.Usage, 77 | Type: flag.Value.Type(), 78 | } 79 | result = append(result, opt) 80 | }) 81 | return result 82 | } 83 | 84 | // Parse the Commands 85 | func NewSubCommands(c *cobra.Command, path string) Commands { 86 | subCommands := Commands{NewCommand(c, path)} 87 | for _, subCommand := range c.Commands() { 88 | subCommands = append(subCommands, NewSubCommands(subCommand, path+"/"+c.Name())...) 89 | } 90 | return subCommands 91 | } 92 | 93 | func NewCommand(c *cobra.Command, path string) *Command { 94 | return &Command{ 95 | Name: c.Name(), 96 | Path: path, 97 | Description: c.Long, 98 | Synopsis: c.Short, 99 | Examples: SplitExamples(c.Example), 100 | Options: NewOptions(c.NonInheritedFlags()), 101 | InheritedOptions: NewOptions(c.InheritedFlags()), 102 | Usage: c.Use, 103 | } 104 | } 105 | 106 | func (a Options) Len() int { return len(a) } 107 | func (a Options) Swap(i, j int) { a[i], a[j] = a[j], a[i] } 108 | func (a Options) Less(i, j int) bool { 109 | return a[i].Name < a[j].Name 110 | } 111 | 112 | func (a TopLevelCommands) Len() int { return len(a.Commands) } 113 | func (a TopLevelCommands) Swap(i, j int) { a.Commands[i], a.Commands[j] = a.Commands[j], a.Commands[i] } 114 | func (a TopLevelCommands) Less(i, j int) bool { 115 | return a.Commands[i].MainCommand.Path < a.Commands[j].MainCommand.Path 116 | } 117 | 118 | func (a Commands) Len() int { return len(a) } 119 | func (a Commands) Swap(i, j int) { a[i], a[j] = a[j], a[i] } 120 | func (a Commands) Less(i, j int) bool { 121 | return a[i].Path < a[j].Path 122 | } 123 | 124 | const ( 125 | start = iota 126 | title 127 | content 128 | ) 129 | 130 | func SplitExamples(examples string) (result []Example) { 131 | lines := strings.Split(examples, "\n") 132 | pos := start 133 | currentExample := Example{} 134 | for _, line := range lines { 135 | line = escapeXml(strings.Trim(line, " ")) 136 | if len(line) == 0 { 137 | continue 138 | } 139 | 140 | if line[0] == '#' { 141 | if pos == title { 142 | line = strings.TrimLeft(line, "# ") 143 | currentExample.Title += "\n " + line 144 | } else { 145 | if len(currentExample.Title) > 0 || len(currentExample.Content) > 0 { 146 | result = append(result, currentExample) 147 | } 148 | currentExample = Example{} 149 | line = strings.TrimLeft(line, "# ") 150 | currentExample.Title = line 151 | pos = title 152 | } 153 | } else { 154 | if pos == content { 155 | currentExample.Content += "\n" + line 156 | } else { 157 | currentExample.Content += line 158 | pos = content 159 | } 160 | } 161 | } 162 | if len(currentExample.Title) > 0 || len(currentExample.Content) > 0 { 163 | result = append(result, currentExample) 164 | } 165 | return 166 | } 167 | -------------------------------------------------------------------------------- /generators/toc.go: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2019 Philippe Martin. 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | package generators 17 | 18 | import ( 19 | "fmt" 20 | "os" 21 | ) 22 | 23 | type ToC struct { 24 | Categories []*Category `yaml:",omitempty"` 25 | } 26 | 27 | type Category struct { 28 | Name string `yaml:",omitempty"` 29 | Commands []*ToCCommand `yaml:",omitempty"` 30 | Include string `yaml:",omitempty"` 31 | } 32 | 33 | type ToCCommand struct { 34 | Name string `yaml:",omitempty"` 35 | Usage string `yaml:",omitempty"` 36 | Args []Arg `yaml:",omitempty"` 37 | OptionsGroups []OptionsGroup `yaml:"optionsgroups,omitempty"` 38 | } 39 | 40 | type Arg struct { 41 | Name string `yaml:",omitempty"` 42 | End bool `yaml:",omitempty"` 43 | Choice *string `yaml:",omitempty"` 44 | Rep *string `yaml:",omitempty"` 45 | } 46 | 47 | type OptionsGroup struct { 48 | Name string `yaml:",omitempty"` 49 | Options []ToCOption `yaml:",omitempty"` 50 | } 51 | 52 | type ToCOption struct { 53 | Name string `yaml:",omitempty"` 54 | Required bool `yaml:",omitempty"` 55 | Type *string `yaml:",omitempty"` 56 | Usage *string `yaml:",omitempty"` 57 | Shorthand *string `yaml:",omitempty"` 58 | Default *string `yaml:",omitempty"` 59 | } 60 | 61 | func (o *ToC) GetAllCommandNames() (commands []string) { 62 | for _, category := range o.Categories { 63 | for _, command := range category.Commands { 64 | commands = append(commands, command.Name) 65 | } 66 | } 67 | return 68 | } 69 | 70 | func (o *ToCCommand) GetAllOptionNames() (options []string) { 71 | for _, group := range o.OptionsGroups { 72 | for _, option := range group.Options { 73 | options = append(options, option.Name) 74 | } 75 | } 76 | return 77 | } 78 | 79 | func (o *ToC) AddMissingCommands(spec *KubectlSpec) { 80 | 81 | commandsInToC := map[string]struct{}{} 82 | 83 | for _, c := range o.GetAllCommandNames() { 84 | commandsInToC[c] = struct{}{} 85 | } 86 | 87 | categoryOthers := Category{ 88 | Name: "Other commands", 89 | } 90 | 91 | for _, c := range spec.GetAllCommandNames() { 92 | if _, found := commandsInToC[c]; !found { 93 | fmt.Fprintf(os.Stderr, "command %s not found\n", c) 94 | categoryOthers.Commands = append(categoryOthers.Commands, &ToCCommand{ 95 | Name: c, 96 | }) 97 | } 98 | } 99 | 100 | if len(categoryOthers.Commands) > 0 { 101 | o.Categories = append(o.Categories, &categoryOthers) 102 | } 103 | 104 | } 105 | 106 | func (o *ToC) AddMissingOptions(spec *KubectlSpec) { 107 | for _, cats := range o.Categories { 108 | for _, command := range cats.Commands { 109 | cmd := spec.GetCommand(command.Name) 110 | if cmd == nil { 111 | fmt.Fprintln(os.Stderr, command.Name) 112 | continue 113 | } 114 | command.AddMissingOptions(cmd) 115 | } 116 | } 117 | } 118 | 119 | func (o *ToC) AddMissingUsages(spec *KubectlSpec) { 120 | for _, cats := range o.Categories { 121 | for _, command := range cats.Commands { 122 | cmd := spec.GetCommand(command.Name) 123 | if cmd == nil { 124 | fmt.Fprintln(os.Stderr, command.Name) 125 | continue 126 | } 127 | command.AddMissingUsage(cmd) 128 | } 129 | } 130 | } 131 | 132 | func (o *ToCCommand) AddMissingOptions(spec *Command) { 133 | optionsInToC := map[string]struct{}{} 134 | for _, opt := range o.GetAllOptionNames() { 135 | optionsInToC[opt] = struct{}{} 136 | } 137 | 138 | newGroup := OptionsGroup{ 139 | Name: "Other options", 140 | } 141 | 142 | for _, opt := range spec.GetAllOptionNames() { 143 | if _, found := optionsInToC[opt]; !found { 144 | fmt.Fprintf(os.Stderr, "option %s not found in %s\n", opt, o.Name) 145 | newGroup.Options = append(newGroup.Options, ToCOption{ 146 | Name: opt, 147 | }) 148 | } 149 | } 150 | 151 | if len(newGroup.Options) > 0 { 152 | o.OptionsGroups = append(o.OptionsGroups, newGroup) 153 | } 154 | } 155 | 156 | func (o *ToCCommand) AddMissingUsage(spec *Command) { 157 | if spec == nil { 158 | return 159 | } 160 | o.Usage = spec.Usage 161 | } 162 | -------------------------------------------------------------------------------- /generators/types.go: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2016 The Kubernetes Authors. 3 | Copyright 2019 Philippe Martin 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | 18 | package generators 19 | 20 | type KubectlSpec struct { 21 | TopLevelCommandGroups []TopLevelCommands `yaml:",omitempty"` 22 | } 23 | 24 | func (o *KubectlSpec) GetCommand(name string) *Command { 25 | for _, tlCommands := range o.TopLevelCommandGroups { 26 | for _, command := range tlCommands.Commands { 27 | if command.MainCommand.Name == name { 28 | return command.MainCommand 29 | } 30 | for _, sub := range command.SubCommands { 31 | if sub.Path+"/"+sub.Name == name { 32 | return sub 33 | } 34 | } 35 | } 36 | } 37 | return nil 38 | } 39 | 40 | func (o *KubectlSpec) GetAllCommandNames() (commands []string) { 41 | for _, tlCommands := range o.TopLevelCommandGroups { 42 | for _, command := range tlCommands.Commands { 43 | commands = append(commands, command.MainCommand.Name) 44 | for _, sub := range command.SubCommands { 45 | commands = append(commands, sub.Path+"/"+sub.Name) 46 | } 47 | } 48 | } 49 | return 50 | } 51 | 52 | type TopLevelCommands struct { 53 | Group string `yaml:",omitempty"` 54 | Commands []TopLevelCommand `yaml:",omitempty"` 55 | } 56 | type TopLevelCommand struct { 57 | MainCommand *Command `yaml:",omitempty"` 58 | SubCommands Commands `yaml:",omitempty"` 59 | } 60 | 61 | type Options []*Option 62 | type Option struct { 63 | Name string `yaml:",omitempty"` 64 | Shorthand string `yaml:",omitempty"` 65 | DefaultValue string `yaml:"default_value,omitempty"` 66 | Usage string `yaml:",omitempty"` 67 | Type string `yaml:",omitempty"` 68 | } 69 | 70 | type Example struct { 71 | Title string `yaml:",omitempty"` 72 | Content string `yaml:",omitempty"` 73 | } 74 | 75 | type Commands []*Command 76 | type Command struct { 77 | Name string `yaml:",omitempty"` // done 78 | Path string `yaml:",omitempty"` 79 | Synopsis string `yaml:",omitempty"` // done -> refpurpose 80 | Description string `yaml:",omitempty"` // done -> refsection{Description} 81 | Options Options `yaml:",omitempty"` 82 | InheritedOptions Options `yaml:"inherited_options,omitempty"` 83 | Examples []Example `yaml:",omitempty"` 84 | SeeAlso []string `yaml:"see_also,omitempty"` // not used 85 | Usage string `yaml:",omitempty"` // not used 86 | } 87 | 88 | type Manifest struct { 89 | Docs []Doc `json:"docs,omitempty"` 90 | Title string `json:"title,omitempty"` 91 | Copyright string `json:"copyright,omitempty"` 92 | } 93 | 94 | type Doc struct { 95 | Filename string `json:"filename,omitempty"` 96 | } 97 | 98 | func (o *Command) GetAllOptionNames() (options []string) { 99 | for _, opt := range o.Options { 100 | options = append(options, opt.Name) 101 | } 102 | return 103 | } 104 | 105 | func (o *Command) GetAllInheritedOptionNames() (options []string) { 106 | for _, opt := range o.InheritedOptions { 107 | options = append(options, opt.Name) 108 | } 109 | return 110 | } 111 | 112 | func (o *Command) GetOption(name string) *Option { 113 | for _, opt := range o.Options { 114 | if opt.Name == name { 115 | return opt 116 | } 117 | } 118 | return nil 119 | } 120 | 121 | func (o *Command) GetInheritedOption(name string) *Option { 122 | for _, opt := range o.InheritedOptions { 123 | if opt.Name == name { 124 | return opt 125 | } 126 | } 127 | return nil 128 | } 129 | -------------------------------------------------------------------------------- /generators/v1_17/toc.yaml: -------------------------------------------------------------------------------- 1 | categories: 2 | - name: GETTING STARTED 3 | commands: 4 | - name: create 5 | usage: create -f FILENAME 6 | optionsgroups: 7 | - options: 8 | - name: filename 9 | - name: kustomize 10 | - name: selector 11 | - name: Switches 12 | options: 13 | - name: recursive 14 | - name: dry-run 15 | - name: edit 16 | - name: record 17 | - name: save-config 18 | - name: windows-line-endings 19 | - options: 20 | - name: allow-missing-template-keys 21 | - name: validate 22 | - options: 23 | - name: Output 24 | options: 25 | - name: output 26 | - name: template 27 | - name: Other options 28 | options: 29 | - name: raw 30 | - name: create/clusterrole 31 | usage: clusterrole NAME --verb=verb --resource=resource.group [--resource-name=resourcename] 32 | [--dry-run] 33 | args: 34 | - name: NAME 35 | optionsgroups: 36 | - options: 37 | - name: verb 38 | required: true 39 | - name: resource 40 | required: true 41 | - options: 42 | - name: resource-name 43 | - name: non-resource-url 44 | - options: 45 | - name: aggregation-rule 46 | - name: Switches 47 | options: 48 | - name: dry-run 49 | - name: save-config 50 | - name: validate 51 | - name: allow-missing-template-keys 52 | - name: Output 53 | options: 54 | - name: output 55 | - name: template 56 | - name: create/clusterrolebinding 57 | usage: clusterrolebinding NAME --clusterrole=NAME [--user=username] [--group=groupname] 58 | [--serviceaccount=namespace:serviceaccountname] [--dry-run] 59 | args: 60 | - name: NAME 61 | optionsgroups: 62 | - options: 63 | - name: clusterrole 64 | required: true 65 | - name: user 66 | type: stringArray 67 | usage: Usernames to bind to the clusterrole 68 | - name: group 69 | - name: serviceaccount 70 | - name: Switches 71 | options: 72 | - name: dry-run 73 | - name: save-config 74 | - name: allow-missing-template-keys 75 | - name: validate 76 | - name: Output 77 | options: 78 | - name: output 79 | - name: template 80 | - name: Other options 81 | options: 82 | - name: generator 83 | - name: create/configmap 84 | usage: configmap NAME [--from-file=[key=]source] [--from-literal=key1=value1] 85 | [--dry-run] 86 | args: 87 | - name: NAME 88 | optionsgroups: 89 | - options: 90 | - name: from-env-file 91 | - name: from-file 92 | - name: from-literal 93 | - name: Switches 94 | options: 95 | - name: append-hash 96 | - name: dry-run 97 | - name: save-config 98 | - name: allow-missing-template-keys 99 | - name: validate 100 | - name: Output 101 | options: 102 | - name: output 103 | - name: template 104 | - name: Other options 105 | options: 106 | - name: generator 107 | - name: create/cronjob 108 | usage: cronjob NAME --image=image --schedule='0/5 * * * ?' -- [COMMAND] [args...] 109 | args: 110 | - name: NAME 111 | - name: -- 112 | end: true 113 | - name: COMMAND 114 | end: true 115 | choice: opt 116 | - name: args 117 | end: true 118 | choice: opt 119 | rep: repeat 120 | optionsgroups: 121 | - options: 122 | - name: image 123 | required: true 124 | - name: schedule 125 | required: true 126 | - name: restart 127 | - name: Switches 128 | options: 129 | - name: dry-run 130 | - name: save-config 131 | - name: allow-missing-template-keys 132 | - name: validate 133 | - name: Output 134 | options: 135 | - name: output 136 | - name: template 137 | - name: create/deployment 138 | usage: deployment NAME --image=image [--dry-run] 139 | args: 140 | - name: NAME 141 | optionsgroups: 142 | - options: 143 | - name: image 144 | required: true 145 | - name: Switches 146 | options: 147 | - name: dry-run 148 | - name: save-config 149 | - name: allow-missing-template-keys 150 | - name: validate 151 | - name: Output 152 | options: 153 | - name: output 154 | - name: template 155 | - name: Other options 156 | options: 157 | - name: generator 158 | - name: create/job 159 | usage: job NAME --image=image [--from=cronjob/name] -- [COMMAND] [args...] 160 | args: 161 | - name: NAME 162 | - name: -- 163 | end: true 164 | - name: COMMAND 165 | end: true 166 | choice: opt 167 | - name: args 168 | end: true 169 | choice: opt 170 | rep: repeat 171 | optionsgroups: 172 | - options: 173 | - name: image 174 | required: true 175 | - name: from 176 | - name: Switches 177 | options: 178 | - name: dry-run 179 | - name: save-config 180 | - name: allow-missing-template-keys 181 | - name: validate 182 | - name: Output 183 | options: 184 | - name: output 185 | - name: template 186 | - name: create/namespace 187 | usage: namespace NAME [--dry-run] 188 | args: 189 | - name: NAME 190 | optionsgroups: 191 | - name: Switches 192 | options: 193 | - name: dry-run 194 | - name: save-config 195 | - name: allow-missing-template-keys 196 | - name: validate 197 | - name: Output 198 | options: 199 | - name: output 200 | - name: template 201 | - name: Other options 202 | options: 203 | - name: generator 204 | - name: create/poddisruptionbudget 205 | usage: poddisruptionbudget NAME --selector=SELECTOR --min-available=N [--dry-run] 206 | args: 207 | - name: NAME 208 | optionsgroups: 209 | - options: 210 | - name: selector 211 | required: true 212 | - name: min-available 213 | required: true 214 | - name: max-unavailable 215 | - name: Switches 216 | options: 217 | - name: dry-run 218 | - name: save-config 219 | - name: allow-missing-template-keys 220 | - name: validate 221 | - name: Output 222 | options: 223 | - name: output 224 | - name: template 225 | - name: Other options 226 | options: 227 | - name: generator 228 | - name: create/priorityclass 229 | usage: priorityclass NAME --value=VALUE --global-default=BOOL [--dry-run] 230 | args: 231 | - name: NAME 232 | optionsgroups: 233 | - options: 234 | - name: value 235 | required: true 236 | - name: global-default 237 | - name: description 238 | - name: preemption-policy 239 | - name: Switches 240 | options: 241 | - name: dry-run 242 | - name: save-config 243 | - name: allow-missing-template-keys 244 | - name: validate 245 | - name: Output 246 | options: 247 | - name: output 248 | - name: template 249 | - name: Other options 250 | options: 251 | - name: generator 252 | - name: create/quota 253 | usage: quota NAME [--hard=key1=value1,key2=value2] [--scopes=Scope1,Scope2] [--dry-run=bool] 254 | args: 255 | - name: NAME 256 | optionsgroups: 257 | - options: 258 | - name: hard 259 | - name: scopes 260 | - name: Switches 261 | options: 262 | - name: dry-run 263 | - name: save-config 264 | - name: allow-missing-template-keys 265 | - name: validate 266 | - name: Output 267 | options: 268 | - name: output 269 | - name: template 270 | - name: Other options 271 | options: 272 | - name: generator 273 | - name: create/role 274 | usage: role NAME --verb=verb --resource=resource.group/subresource [--resource-name=resourcename] 275 | [--dry-run] 276 | args: 277 | - name: NAME 278 | optionsgroups: 279 | - options: 280 | - name: verb 281 | required: true 282 | - name: resource 283 | required: true 284 | - options: 285 | - name: resource-name 286 | - name: Switches 287 | options: 288 | - name: dry-run 289 | - name: save-config 290 | - name: allow-missing-template-keys 291 | - name: validate 292 | - name: Output 293 | options: 294 | - name: output 295 | - name: template 296 | - name: create/rolebinding 297 | usage: rolebinding NAME --clusterrole=NAME|--role=NAME [--user=username] [--group=groupname] 298 | [--serviceaccount=namespace:serviceaccountname] [--dry-run] 299 | args: 300 | - name: NAME 301 | optionsgroups: 302 | - options: 303 | - name: clusterrole 304 | - name: role 305 | - options: 306 | - name: user 307 | - name: group 308 | - name: serviceaccount 309 | - name: Switches 310 | options: 311 | - name: dry-run 312 | - name: save-config 313 | - name: allow-missing-template-keys 314 | - name: validate 315 | - name: Output 316 | options: 317 | - name: output 318 | - name: template 319 | - name: Other options 320 | options: 321 | - name: generator 322 | - name: create/secret 323 | usage: secret 324 | - name: create/secret/generic 325 | usage: generic NAME [--type=string] [--from-file=[key=]source] [--from-literal=key1=value1] 326 | [--dry-run] 327 | args: 328 | - name: NAME 329 | optionsgroups: 330 | - options: 331 | - name: from-env-file 332 | - name: from-file 333 | - name: from-literal 334 | - options: 335 | - name: type 336 | - name: Switches 337 | options: 338 | - name: append-hash 339 | - name: dry-run 340 | - name: save-config 341 | - options: 342 | - name: allow-missing-template-keys 343 | - name: validate 344 | - name: Output 345 | options: 346 | - name: output 347 | - name: template 348 | - name: Other options 349 | options: 350 | - name: generator 351 | - name: create/secret/docker-registry 352 | usage: docker-registry NAME --docker-username=user --docker-password=password 353 | --docker-email=email [--docker-server=string] [--from-literal=key1=value1] [--dry-run] 354 | args: 355 | - name: NAME 356 | optionsgroups: 357 | - options: 358 | - name: docker-username 359 | required: true 360 | - name: docker-password 361 | required: true 362 | - options: 363 | - name: docker-email 364 | required: true 365 | - name: docker-server 366 | - options: 367 | - name: from-file 368 | - name: Switches 369 | options: 370 | - name: append-hash 371 | - name: dry-run 372 | - name: save-config 373 | - options: 374 | - name: allow-missing-template-keys 375 | - name: validate 376 | - name: Output 377 | options: 378 | - name: output 379 | - name: template 380 | - name: Other options 381 | options: 382 | - name: generator 383 | - name: create/secret/tls 384 | usage: tls NAME --cert=path/to/cert/file --key=path/to/key/file [--dry-run] 385 | args: 386 | - name: NAME 387 | optionsgroups: 388 | - options: 389 | - name: cert 390 | required: true 391 | - name: key 392 | required: true 393 | - name: Switches 394 | options: 395 | - name: append-hash 396 | - name: dry-run 397 | - name: save-config 398 | - name: allow-missing-template-keys 399 | - name: validate 400 | - name: Output 401 | options: 402 | - name: output 403 | - name: template 404 | - name: Other options 405 | options: 406 | - name: generator 407 | - name: create/service 408 | usage: service 409 | - name: create/service/clusterip 410 | usage: clusterip NAME [--tcp=:] [--dry-run] 411 | args: 412 | - name: NAME 413 | optionsgroups: 414 | - options: 415 | - name: tcp 416 | - name: clusterip 417 | - name: Switches 418 | options: 419 | - name: dry-run 420 | - name: save-config 421 | - name: allow-missing-template-keys 422 | - name: validate 423 | - name: Output 424 | options: 425 | - name: output 426 | - name: template 427 | - name: Other options 428 | options: 429 | - name: generator 430 | - name: create/service/externalname 431 | usage: externalname NAME --external-name external.name [--dry-run] 432 | args: 433 | - name: NAME 434 | optionsgroups: 435 | - options: 436 | - name: external-name 437 | required: true 438 | - name: tcp 439 | - name: Switches 440 | options: 441 | - name: dry-run 442 | - name: save-config 443 | - name: allow-missing-template-keys 444 | - name: validate 445 | - name: Output 446 | options: 447 | - name: output 448 | - name: template 449 | - name: Other options 450 | options: 451 | - name: generator 452 | - name: create/service/loadbalancer 453 | usage: loadbalancer NAME [--tcp=port:targetPort] [--dry-run] 454 | args: 455 | - name: NAME 456 | optionsgroups: 457 | - options: 458 | - name: tcp 459 | - name: Switches 460 | options: 461 | - name: dry-run 462 | - name: save-config 463 | - name: allow-missing-template-keys 464 | - name: validate 465 | - name: Output 466 | options: 467 | - name: output 468 | - name: template 469 | - name: Other options 470 | options: 471 | - name: generator 472 | - name: create/service/nodeport 473 | usage: nodeport NAME [--tcp=port:targetPort] [--dry-run] 474 | args: 475 | - name: NAME 476 | optionsgroups: 477 | - options: 478 | - name: tcp 479 | - name: node-port 480 | - name: Switches 481 | options: 482 | - name: dry-run 483 | - name: save-config 484 | - name: allow-missing-template-keys 485 | - name: validate 486 | - name: Output 487 | options: 488 | - name: output 489 | - name: template 490 | - name: Other options 491 | options: 492 | - name: generator 493 | - name: create/serviceaccount 494 | usage: serviceaccount NAME [--dry-run] 495 | args: 496 | - name: NAME 497 | optionsgroups: 498 | - name: Switches 499 | options: 500 | - name: dry-run 501 | - name: save-config 502 | - name: allow-missing-template-keys 503 | - name: validate 504 | - name: Output 505 | options: 506 | - name: output 507 | - name: template 508 | - name: Other options 509 | options: 510 | - name: generator 511 | - name: get 512 | usage: get [(-o|--output=)json|yaml|wide|custom-columns=...|custom-columns-file=...|go-template=...|go-template-file=...|jsonpath=...|jsonpath-file=...] 513 | (TYPE[.VERSION][.GROUP] [NAME | -l label] | TYPE[.VERSION][.GROUP]/NAME ...) 514 | [flags] 515 | args: 516 | - name: TYPE[.VERSION][.GROUP][/]NAME 517 | choice: opt 518 | rep: repeat 519 | optionsgroups: 520 | - options: 521 | - name: filename 522 | - name: kustomize 523 | - name: selector 524 | - name: field-selector 525 | - name: Switches 526 | options: 527 | - name: all-namespaces 528 | - name: recursive 529 | - name: watch 530 | - name: export 531 | - name: ignore-not-found 532 | - name: no-headers 533 | - name: output-watch-events 534 | - options: 535 | - name: show-kind 536 | - name: show-labels 537 | - name: use-openapi-print-columns 538 | - name: watch-only 539 | - options: 540 | - name: allow-missing-template-keys 541 | - name: server-print 542 | - name: Output 543 | options: 544 | - name: output 545 | - name: label-columns 546 | - name: sort-by 547 | - name: template 548 | - name: Other options 549 | - options: 550 | - name: chunk-size 551 | - name: raw 552 | - name: run 553 | usage: run NAME --image=image [--env="key=value"] [--port=port] [--replicas=replicas] 554 | [--dry-run=bool] [--overrides=inline-json] [--command] -- [COMMAND] [args...] 555 | args: 556 | - name: NAME 557 | - name: -- 558 | end: true 559 | - name: COMMAND 560 | end: true 561 | choice: opt 562 | - name: args 563 | end: true 564 | choice: opt 565 | rep: repeat 566 | optionsgroups: 567 | - options: 568 | - name: filename 569 | - name: kustomize 570 | - name: Resource attributes 571 | options: 572 | - name: replicas 573 | - name: labels 574 | - name: grace-period 575 | - name: schedule 576 | - options: 577 | - name: pod-running-timeout 578 | - name: restart 579 | - name: serviceaccount 580 | - name: Container attributes 581 | options: 582 | - name: image 583 | - name: image-pull-policy 584 | - name: env 585 | - options: 586 | - name: port 587 | - name: hostport 588 | - name: limits 589 | - name: requests 590 | - name: Switches 591 | options: 592 | - name: recursive 593 | - name: stdin 594 | - name: tty 595 | - name: attach 596 | - name: command 597 | - name: dry-run 598 | - name: expose 599 | - name: force 600 | - options: 601 | - name: leave-stdin-open 602 | - name: quiet 603 | - name: record 604 | - name: rm 605 | - name: save-config 606 | - name: wait 607 | - options: 608 | - name: allow-missing-template-keys 609 | - name: cascade 610 | - name: Other options 611 | options: 612 | - name: output 613 | - name: template 614 | - options: 615 | - name: generator 616 | - name: service-generator 617 | - options: 618 | - name: overrides 619 | - name: service-overrides 620 | - options: 621 | - name: timeout 622 | - name: expose 623 | usage: expose (-f FILENAME | TYPE NAME) [--port=port] [--protocol=TCP|UDP|SCTP] 624 | [--target-port=number-or-name] [--name=name] [--external-ip=external-ip-of-service] 625 | [--type=type] 626 | optionsgroups: 627 | - options: 628 | - name: filename 629 | - name: kustomize 630 | - name: Service attributes 631 | options: 632 | - name: name 633 | - name: labels 634 | - name: selector 635 | - name: type 636 | - options: 637 | - name: cluster-ip 638 | - name: external-ip 639 | - name: load-balancer-ip 640 | - options: 641 | - name: port 642 | - name: target-port 643 | - name: container-port 644 | - options: 645 | - name: protocol 646 | - name: session-affinity 647 | - name: Switches 648 | options: 649 | - name: recursive 650 | - name: dry-run 651 | - name: record 652 | - name: save-config 653 | - name: allow-missing-template-keys 654 | - name: Other options 655 | options: 656 | - name: generator 657 | - name: overrides 658 | - options: 659 | - name: output 660 | - name: template 661 | - name: delete 662 | usage: delete ([-f FILENAME] | [-k DIRECTORY] | TYPE [(NAME | -l label | --all)]) 663 | args: 664 | - name: TYPE[,TYPE...] 665 | choice: opt 666 | - name: NAME 667 | choice: opt 668 | rep: repeat 669 | optionsgroups: 670 | - name: Selection 671 | options: 672 | - name: filename 673 | - name: kustomize 674 | - name: selector 675 | - name: field-selector 676 | - name: Switches 677 | options: 678 | - name: all-namespaces 679 | - name: recursive 680 | - name: all 681 | - name: force 682 | - name: ignore-not-found 683 | - name: now 684 | - name: cascade 685 | - name: wait 686 | - name: Other options 687 | options: 688 | - name: grace-period 689 | - name: timeout 690 | - name: output 691 | - name: raw 692 | include: _getting_started.md 693 | - name: APP MANAGEMENT 694 | commands: 695 | - name: apply 696 | usage: apply (-f FILENAME | -k DIRECTORY) 697 | optionsgroups: 698 | - options: 699 | - name: filename 700 | - name: kustomize 701 | - name: selector 702 | - name: Switches 703 | options: 704 | - name: recursive 705 | - name: all 706 | - name: dry-run 707 | - name: force 708 | - name: force-conflicts 709 | - name: prune 710 | - name: record 711 | - options: 712 | - name: server-dry-run 713 | - name: server-side 714 | - name: wait 715 | - options: 716 | - name: allow-missing-template-keys 717 | - name: cascade 718 | - name: openapi-patch 719 | - options: 720 | - name: overwrite 721 | - name: validate 722 | - name: Output 723 | options: 724 | - name: output 725 | - name: template 726 | - name: Other options 727 | options: 728 | - name: field-manager 729 | - name: grace-period 730 | - name: prune-whitelist 731 | - options: 732 | - name: timeout 733 | - name: apply/edit-last-applied 734 | usage: edit-last-applied (RESOURCE/NAME | -f FILENAME) 735 | args: 736 | - name: RESOURCE/NAME 737 | optionsgroups: 738 | - options: 739 | - name: filename 740 | - name: kustomize 741 | - name: Switches 742 | options: 743 | - name: recursive 744 | - name: record 745 | - name: windows-line-endings 746 | - name: allow-missing-template-keys 747 | - name: Output 748 | options: 749 | - name: output 750 | - name: template 751 | - name: apply/set-last-applied 752 | usage: set-last-applied -f FILENAME 753 | optionsgroups: 754 | - options: 755 | - name: filename 756 | - name: Switches 757 | options: 758 | - name: create-annotation 759 | - name: dry-run 760 | - name: allow-missing-template-keys 761 | - name: Output 762 | options: 763 | - name: output 764 | - name: template 765 | - name: apply/view-last-applied 766 | usage: view-last-applied (TYPE [NAME | -l label] | TYPE/NAME | -f FILENAME) 767 | args: 768 | - name: TYPE[/]NAME 769 | optionsgroups: 770 | - options: 771 | - name: filename 772 | - name: kustomize 773 | - name: selector 774 | - name: Switches 775 | options: 776 | - name: recursive 777 | - name: all 778 | - name: Output 779 | options: 780 | - name: output 781 | - name: annotate 782 | usage: annotate [--overwrite] (-f FILENAME | TYPE NAME) KEY_1=VAL_1 ... KEY_N=VAL_N 783 | [--resource-version=version] 784 | args: 785 | - name: TYPE 786 | - name: NAME 787 | - name: key=val 788 | end: true 789 | rep: repeat 790 | optionsgroups: 791 | - options: 792 | - name: filename 793 | - name: kustomize 794 | - name: selector 795 | - name: field-selector 796 | - name: Switches 797 | options: 798 | - name: recursive 799 | - name: all 800 | - name: dry-run 801 | - name: local 802 | - name: overwrite 803 | - name: record 804 | - options: 805 | - name: allow-missing-template-keys 806 | - name: Other options 807 | options: 808 | - name: resource-version 809 | - name: output 810 | - name: template 811 | - name: autoscale 812 | usage: autoscale (-f FILENAME | TYPE NAME | TYPE/NAME) [--min=MINPODS] --max=MAXPODS 813 | [--cpu-percent=CPU] 814 | args: 815 | - name: TYPE[/]NAME 816 | optionsgroups: 817 | - options: 818 | - name: name 819 | - name: min 820 | - name: max 821 | - name: cpu-percent 822 | - name: Selection 823 | options: 824 | - name: filename 825 | - name: kustomize 826 | - name: Switches 827 | options: 828 | - name: recursive 829 | - name: dry-run 830 | - name: record 831 | - name: save-config 832 | - name: allow-missing-template-keys 833 | - name: Output 834 | options: 835 | - name: output 836 | - name: template 837 | - name: Other options 838 | options: 839 | - name: generator 840 | - name: convert 841 | usage: convert -f FILENAME 842 | optionsgroups: 843 | - options: 844 | - name: filename 845 | - name: kustomize 846 | - name: output-version 847 | - name: Switches 848 | options: 849 | - name: recursive 850 | - name: allow-missing-template-keys 851 | - name: local 852 | - name: validate 853 | - name: Output 854 | options: 855 | - name: output 856 | - name: template 857 | - name: diff 858 | usage: diff -f FILENAME 859 | optionsgroups: 860 | - options: 861 | - name: filename 862 | - name: kustomize 863 | - name: Switches 864 | options: 865 | - name: recursive 866 | - name: force-conflicts 867 | - name: server-side 868 | - name: Other options 869 | options: 870 | - name: field-manager 871 | - name: edit 872 | usage: edit (RESOURCE/NAME | -f FILENAME) 873 | args: 874 | - name: RESOURCE/NAME 875 | optionsgroups: 876 | - options: 877 | - name: filename 878 | - name: kustomize 879 | - name: Switches 880 | options: 881 | - name: recursive 882 | - name: output-patch 883 | - name: record 884 | - name: save-config 885 | - name: windows-line-endings 886 | - options: 887 | - name: allow-missing-template-keys 888 | - name: validate 889 | - name: Output 890 | options: 891 | - name: output 892 | - name: template 893 | - name: label 894 | usage: label [--overwrite] (-f FILENAME | TYPE NAME) KEY_1=VAL_1 ... KEY_N=VAL_N 895 | [--resource-version=version] 896 | args: 897 | - name: TYPE 898 | - name: NAME 899 | - name: key=val 900 | end: true 901 | rep: repeat 902 | optionsgroups: 903 | - options: 904 | - name: filename 905 | - name: kustomize 906 | - options: 907 | - name: selector 908 | - name: field-selector 909 | - name: resource-version 910 | - name: Switches 911 | options: 912 | - name: recursive 913 | - name: all 914 | - name: dry-run 915 | - name: list 916 | - name: local 917 | - name: overwrite 918 | - name: record 919 | - options: 920 | - name: allow-missing-template-keys 921 | - name: Output 922 | options: 923 | - name: output 924 | - name: template 925 | - name: patch 926 | usage: patch (-f FILENAME | TYPE NAME) -p PATCH 927 | args: 928 | - name: TYPE 929 | - name: NAME 930 | optionsgroups: 931 | - options: 932 | - name: patch 933 | - name: type 934 | - name: Selection 935 | options: 936 | - name: filename 937 | - name: kustomize 938 | - name: Switches 939 | options: 940 | - name: recursive 941 | - name: dry-run 942 | - name: local 943 | - name: record 944 | - name: allow-missing-template-keys 945 | - name: Output 946 | options: 947 | - name: output 948 | - name: template 949 | - name: replace 950 | usage: replace -f FILENAME 951 | optionsgroups: 952 | - options: 953 | - name: filename 954 | - name: kustomize 955 | - name: Switches 956 | options: 957 | - name: recursive 958 | - name: force 959 | - name: save-config 960 | - name: wait 961 | - options: 962 | - name: allow-missing-template-keys 963 | - name: cascade 964 | - name: validate 965 | - name: Output 966 | options: 967 | - name: output 968 | - name: template 969 | - name: Other options 970 | options: 971 | - name: grace-period 972 | - name: raw 973 | - name: timeout 974 | - name: rollout 975 | usage: rollout SUBCOMMAND 976 | - name: rollout/history 977 | usage: history (TYPE NAME | TYPE/NAME) [flags] 978 | args: 979 | - name: TYPE[/]NAME 980 | optionsgroups: 981 | - options: 982 | - name: filename 983 | - name: kustomize 984 | - name: revision 985 | - name: Switches 986 | options: 987 | - name: recursive 988 | - name: allow-missing-template-keys 989 | - name: Output 990 | options: 991 | - name: output 992 | - name: template 993 | - name: rollout/pause 994 | usage: pause RESOURCE 995 | args: 996 | - name: RESOURCE 997 | optionsgroups: 998 | - options: 999 | - name: filename 1000 | - name: kustomize 1001 | - name: Switches 1002 | options: 1003 | - name: recursive 1004 | - name: allow-missing-template-keys 1005 | - name: Output 1006 | options: 1007 | - name: output 1008 | - name: template 1009 | - name: rollout/restart 1010 | usage: restart RESOURCE 1011 | args: 1012 | - name: RESOURCE 1013 | optionsgroups: 1014 | - options: 1015 | - name: filename 1016 | - name: kustomize 1017 | - name: Switches 1018 | options: 1019 | - name: recursive 1020 | - name: allow-missing-template-keys 1021 | - name: Output 1022 | options: 1023 | - name: output 1024 | - name: template 1025 | - name: rollout/resume 1026 | usage: resume RESOURCE 1027 | args: 1028 | - name: RESOURCE 1029 | optionsgroups: 1030 | - options: 1031 | - name: filename 1032 | - name: kustomize 1033 | - name: Switches 1034 | options: 1035 | - name: recursive 1036 | - name: allow-missing-template-keys 1037 | - name: Output 1038 | options: 1039 | - name: output 1040 | - name: template 1041 | - name: rollout/status 1042 | usage: status (TYPE NAME | TYPE/NAME) [flags] 1043 | args: 1044 | - name: TYPE[/]NAME 1045 | optionsgroups: 1046 | - options: 1047 | - name: filename 1048 | - name: kustomize 1049 | - name: revision 1050 | - name: timeout 1051 | - name: Switches 1052 | options: 1053 | - name: recursive 1054 | - name: watch 1055 | - name: rollout/undo 1056 | usage: undo (TYPE NAME | TYPE/NAME) [flags] 1057 | args: 1058 | - name: TYPE[/]NAME 1059 | optionsgroups: 1060 | - options: 1061 | - name: filename 1062 | - name: kustomize 1063 | - name: to-revision 1064 | - name: Switches 1065 | options: 1066 | - name: recursive 1067 | - name: dry-run 1068 | - name: allow-missing-template-keys 1069 | - name: Output 1070 | options: 1071 | - name: output 1072 | - name: template 1073 | - name: scale 1074 | usage: scale [--resource-version=version] [--current-replicas=count] --replicas=COUNT 1075 | (-f FILENAME | TYPE NAME) 1076 | args: 1077 | - name: TYPE 1078 | - name: NAME 1079 | optionsgroups: 1080 | - options: 1081 | - name: replicas 1082 | required: true 1083 | - name: current-replicas 1084 | - name: timeout 1085 | - name: Selection 1086 | options: 1087 | - name: filename 1088 | - name: kustomize 1089 | - name: selector 1090 | - name: resource-version 1091 | - name: Switches 1092 | options: 1093 | - name: recursive 1094 | - name: all 1095 | - name: record 1096 | - name: allow-missing-template-keys 1097 | - name: Output 1098 | options: 1099 | - name: output 1100 | - name: template 1101 | - name: set 1102 | usage: set SUBCOMMAND 1103 | - name: set/env 1104 | usage: env RESOURCE/NAME KEY_1=VAL_1 ... KEY_N=VAL_N 1105 | args: 1106 | - name: RESOURCE/NAME 1107 | - name: key=val 1108 | rep: repeat 1109 | optionsgroups: 1110 | - options: 1111 | - name: env 1112 | - name: from 1113 | - name: keys 1114 | - name: prefix 1115 | - name: Selections 1116 | options: 1117 | - name: filename 1118 | - name: kustomize 1119 | - name: selector 1120 | - name: containers 1121 | - name: Switches 1122 | options: 1123 | - name: recursive 1124 | - name: all 1125 | - name: dry-run 1126 | - name: list 1127 | - name: local 1128 | - name: resolve 1129 | - options: 1130 | - name: allow-missing-template-keys 1131 | - name: overwrite 1132 | - name: Output 1133 | options: 1134 | - name: output 1135 | - name: template 1136 | - name: set/image 1137 | usage: image (-f FILENAME | TYPE NAME) CONTAINER_NAME_1=CONTAINER_IMAGE_1 ... 1138 | CONTAINER_NAME_N=CONTAINER_IMAGE_N 1139 | args: 1140 | - name: TYPE 1141 | - name: NAME 1142 | - name: containerName=image 1143 | rep: repeat 1144 | optionsgroups: 1145 | - options: 1146 | - name: filename 1147 | - name: kustomize 1148 | - name: selector 1149 | - name: Switches 1150 | options: 1151 | - name: recursive 1152 | - name: all 1153 | - name: dry-run 1154 | - name: local 1155 | - name: record 1156 | - name: allow-missing-template-keys 1157 | - name: Output 1158 | options: 1159 | - name: output 1160 | - name: template 1161 | - name: set/resources 1162 | usage: resources (-f FILENAME | TYPE NAME) ([--limits=LIMITS & --requests=REQUESTS] 1163 | args: 1164 | - name: TYPE 1165 | - name: NAME 1166 | optionsgroups: 1167 | - options: 1168 | - name: limits 1169 | - name: requests 1170 | - name: Selection 1171 | options: 1172 | - name: filename 1173 | - name: kustomize 1174 | - name: selector 1175 | - name: containers 1176 | - name: Switches 1177 | options: 1178 | - name: recursive 1179 | - name: all 1180 | - name: dry-run 1181 | - name: local 1182 | - name: record 1183 | - name: allow-missing-template-keys 1184 | - name: Output 1185 | options: 1186 | - name: output 1187 | - name: template 1188 | - name: set/selector 1189 | usage: selector (-f FILENAME | TYPE NAME) EXPRESSIONS [--resource-version=version] 1190 | args: 1191 | - name: TYPE 1192 | - name: NAME 1193 | - name: EXPRESSIONS 1194 | optionsgroups: 1195 | - options: 1196 | - name: filename 1197 | - name: resource-version 1198 | - name: Switches 1199 | options: 1200 | - name: all 1201 | - name: dry-run 1202 | - name: local 1203 | - name: record 1204 | - options: 1205 | - name: allow-missing-template-keys 1206 | - name: recursive 1207 | - name: Output 1208 | options: 1209 | - name: output 1210 | - name: template 1211 | - name: set/serviceaccount 1212 | usage: serviceaccount (-f FILENAME | TYPE NAME) SERVICE_ACCOUNT 1213 | args: 1214 | - name: TYPE 1215 | - name: NAME 1216 | - name: serviceAccount 1217 | optionsgroups: 1218 | - options: 1219 | - name: filename 1220 | - name: kustomize 1221 | - name: Switches 1222 | options: 1223 | - name: recursive 1224 | - name: all 1225 | - name: dry-run 1226 | - name: local 1227 | - name: record 1228 | - name: allow-missing-template-keys 1229 | - name: Output 1230 | options: 1231 | - name: output 1232 | - name: template 1233 | - name: set/subject 1234 | usage: subject (-f FILENAME | TYPE NAME) [--user=username] [--group=groupname] 1235 | [--serviceaccount=namespace:serviceaccountname] [--dry-run] 1236 | args: 1237 | - name: TYPE 1238 | - name: NAME 1239 | optionsgroups: 1240 | - options: 1241 | - name: user 1242 | type: stringArray 1243 | usage: UserUsernames to bind to the role 1244 | - name: group 1245 | - name: serviceaccount 1246 | - name: Selection 1247 | options: 1248 | - name: filename 1249 | - name: kustomize 1250 | - name: selector 1251 | - name: Switches 1252 | options: 1253 | - name: recursive 1254 | - name: all 1255 | - name: dry-run 1256 | - name: local 1257 | - name: allow-missing-template-keys 1258 | - name: Output 1259 | options: 1260 | - name: output 1261 | - name: template 1262 | - name: wait 1263 | usage: wait ([-f FILENAME] | resource.group/resource.name | resource.group [(-l 1264 | label | --all)]) [--for=delete|--for condition=available] 1265 | optionsgroups: 1266 | - options: 1267 | - name: for 1268 | - name: timeout 1269 | - name: Selection 1270 | options: 1271 | - name: filename 1272 | - name: selector 1273 | - name: field-selector 1274 | - name: Switches 1275 | options: 1276 | - name: all-namespaces 1277 | - name: all 1278 | - name: local 1279 | - name: allow-missing-template-keys 1280 | - name: recursive 1281 | - name: Output 1282 | options: 1283 | - name: output 1284 | - name: template 1285 | include: _app_management.md 1286 | - name: WORKING WITH APPS 1287 | commands: 1288 | - name: attach 1289 | usage: attach (POD | TYPE/NAME) -c CONTAINER 1290 | args: 1291 | - name: POD | TYPE/NAME 1292 | optionsgroups: 1293 | - options: 1294 | - name: container 1295 | - name: stdin 1296 | - name: tty 1297 | - name: pod-running-timeout 1298 | - name: auth 1299 | usage: auth 1300 | - name: auth/can-i 1301 | usage: can-i VERB [TYPE | TYPE/NAME | NONRESOURCEURL] 1302 | args: 1303 | - name: VERB 1304 | - name: TYPE | TYPE/NAME | NonResourceURL 1305 | choice: opt 1306 | optionsgroups: 1307 | - options: 1308 | - name: subresource 1309 | - name: all-namespaces 1310 | - name: quiet 1311 | - name: list 1312 | - name: no-headers 1313 | - name: auth/reconcile 1314 | usage: reconcile -f FILENAME 1315 | optionsgroups: 1316 | - options: 1317 | - name: filename 1318 | - name: kustomize 1319 | - options: 1320 | - name: remove-extra-permissions 1321 | - name: remove-extra-subjects 1322 | - name: Switches 1323 | options: 1324 | - name: recursive 1325 | - name: dry-run 1326 | - name: allow-missing-template-keys 1327 | - name: Output 1328 | options: 1329 | - name: output 1330 | - name: template 1331 | - name: cp 1332 | usage: cp 1333 | args: 1334 | - name: fileSpecSrc 1335 | - name: fileSpecDest 1336 | optionsgroups: 1337 | - options: 1338 | - name: container 1339 | - name: no-preserve 1340 | - name: describe 1341 | usage: describe (-f FILENAME | TYPE [NAME_PREFIX | -l label] | TYPE/NAME) 1342 | args: 1343 | - name: TYPE[/]NamePrefix 1344 | optionsgroups: 1345 | - options: 1346 | - name: filename 1347 | - name: kustomize 1348 | - name: selector 1349 | - name: Switches 1350 | options: 1351 | - name: all-namespaces 1352 | - name: recursive 1353 | - name: show-events 1354 | - name: exec 1355 | usage: exec (POD | TYPE/NAME) [-c CONTAINER] [flags] -- COMMAND [args...] 1356 | args: 1357 | - name: POD | TYPE/NAME 1358 | - name: -- 1359 | end: true 1360 | - name: COMMAND 1361 | end: true 1362 | - name: args 1363 | end: true 1364 | choice: opt 1365 | rep: repeat 1366 | optionsgroups: 1367 | - options: 1368 | - name: container 1369 | - name: stdin 1370 | - name: tty 1371 | - name: pod-running-timeout 1372 | - name: logs 1373 | usage: logs [-f] [-p] (POD | TYPE/NAME) [-c CONTAINER] 1374 | args: 1375 | - name: POD | TYPE/NAME 1376 | optionsgroups: 1377 | - name: Selection 1378 | options: 1379 | - name: container 1380 | - name: selector 1381 | - name: Switches 1382 | options: 1383 | - name: follow 1384 | - name: previous 1385 | - name: all-containers 1386 | - name: ignore-errors 1387 | - name: insecure-skip-tls-verify-backend 1388 | - options: 1389 | - name: prefix 1390 | - name: timestamps 1391 | - name: Other options 1392 | options: 1393 | - name: limit-bytes 1394 | - name: max-log-requests 1395 | - name: pod-running-timeout 1396 | - options: 1397 | - name: since 1398 | - name: since-time 1399 | - name: tail 1400 | - name: port-forward 1401 | usage: port-forward TYPE/NAME [options] [LOCAL_PORT:]REMOTE_PORT [...[LOCAL_PORT_N:]REMOTE_PORT_N] 1402 | args: 1403 | - name: TYPE/NAME 1404 | - name: '[LocalPort:]RemotePort' 1405 | rep: repeat 1406 | optionsgroups: 1407 | - options: 1408 | - name: address 1409 | - name: pod-running-timeout 1410 | - name: proxy 1411 | usage: proxy [--port=PORT] [--www=static-dir] [--www-prefix=prefix] [--api-prefix=prefix] 1412 | optionsgroups: 1413 | - options: 1414 | - name: port 1415 | - name: address 1416 | - name: unix-socket 1417 | - options: 1418 | - name: www 1419 | - name: www-prefix 1420 | - name: api-prefix 1421 | - options: 1422 | - name: accept-hosts 1423 | - name: accept-paths 1424 | - options: 1425 | - name: reject-methods 1426 | - name: reject-paths 1427 | - options: 1428 | - name: keepalive 1429 | - name: disable-filter 1430 | - name: top 1431 | usage: top 1432 | - name: top/node 1433 | usage: node [NAME | -l label] 1434 | args: 1435 | - name: NAME 1436 | choice: opt 1437 | optionsgroups: 1438 | - options: 1439 | - name: selector 1440 | - name: sort-by 1441 | - name: no-headers 1442 | - options: 1443 | - name: heapster-namespace 1444 | - name: heapster-port 1445 | - options: 1446 | - name: heapster-scheme 1447 | - name: heapster-service 1448 | - name: top/pod 1449 | usage: pod [NAME | -l label] 1450 | args: 1451 | - name: NAME 1452 | choice: opt 1453 | optionsgroups: 1454 | - options: 1455 | - name: selector 1456 | - name: sort-by 1457 | - name: no-headers 1458 | - name: all-namespaces 1459 | - name: containers 1460 | - options: 1461 | - name: heapster-namespace 1462 | - name: heapster-port 1463 | - options: 1464 | - name: heapster-scheme 1465 | - name: heapster-service 1466 | include: _working_with_apps.md 1467 | - name: CLUSTER MANAGEMENT 1468 | commands: 1469 | - name: api-versions 1470 | usage: api-versions 1471 | - name: certificate 1472 | usage: certificate SUBCOMMAND 1473 | - name: certificate/approve 1474 | usage: approve (-f FILENAME | NAME) 1475 | args: 1476 | - name: NAME 1477 | optionsgroups: 1478 | - options: 1479 | - name: filename 1480 | - name: kustomize 1481 | - name: Switches 1482 | options: 1483 | - name: recursive 1484 | - name: force 1485 | - name: allow-missing-template-keys 1486 | - name: Output 1487 | options: 1488 | - name: output 1489 | - name: template 1490 | - name: certificate/deny 1491 | usage: deny (-f FILENAME | NAME) 1492 | args: 1493 | - name: NAME 1494 | optionsgroups: 1495 | - options: 1496 | - name: filename 1497 | - name: kustomize 1498 | - name: Switches 1499 | options: 1500 | - name: recursive 1501 | - name: force 1502 | - name: allow-missing-template-keys 1503 | - name: Output 1504 | options: 1505 | - name: output 1506 | - name: template 1507 | - name: cluster-info 1508 | usage: cluster-info 1509 | - name: cluster-info/dump 1510 | usage: dump 1511 | optionsgroups: 1512 | - options: 1513 | - name: namespaces 1514 | - name: pod-running-timeout 1515 | - name: Switches 1516 | options: 1517 | - name: all-namespaces 1518 | - name: allow-missing-template-keys 1519 | - name: Output 1520 | options: 1521 | - name: output 1522 | - name: output-directory 1523 | - name: template 1524 | - name: cordon 1525 | usage: cordon NODE 1526 | args: 1527 | - name: NODE 1528 | optionsgroups: 1529 | - options: 1530 | - name: selector 1531 | - name: dry-run 1532 | - name: drain 1533 | usage: drain NODE 1534 | args: 1535 | - name: NODE 1536 | optionsgroups: 1537 | - options: 1538 | - name: pod-selector 1539 | - name: selector 1540 | - name: Switches 1541 | options: 1542 | - name: delete-local-data 1543 | - name: dry-run 1544 | - name: force 1545 | - name: ignore-daemonsets 1546 | - name: Other options 1547 | options: 1548 | - name: grace-period 1549 | - name: timeout 1550 | - name: taint 1551 | usage: taint NODE NAME KEY_1=VAL_1:TAINT_EFFECT_1 ... KEY_N=VAL_N:TAINT_EFFECT_N 1552 | args: 1553 | - name: NODE 1554 | - name: NAME 1555 | - name: Key=Val:Taint 1556 | rep: repeat 1557 | optionsgroups: 1558 | - options: 1559 | - name: selector 1560 | - name: Switches 1561 | options: 1562 | - name: all 1563 | - name: overwrite 1564 | - name: validate 1565 | - name: allow-missing-template-keys 1566 | - name: Output 1567 | options: 1568 | - name: output 1569 | - name: template 1570 | - name: uncordon 1571 | usage: uncordon NODE 1572 | args: 1573 | - name: NODE 1574 | optionsgroups: 1575 | - options: 1576 | - name: selector 1577 | - name: dry-run 1578 | - name: KUBECTL SETTINGS AND USAGE 1579 | commands: 1580 | - name: alpha 1581 | usage: alpha 1582 | - name: api-resources 1583 | usage: api-resources 1584 | optionsgroups: 1585 | - options: 1586 | - name: api-group 1587 | - name: verbs 1588 | - name: sort-by 1589 | - name: output 1590 | - name: Switches 1591 | options: 1592 | - name: cached 1593 | - name: no-headers 1594 | - name: namespaced 1595 | - name: completion 1596 | usage: completion SHELL 1597 | args: 1598 | - name: SHELL 1599 | - name: config 1600 | usage: config SUBCOMMAND 1601 | - name: config/current-context 1602 | usage: current-context 1603 | - name: config/delete-cluster 1604 | usage: delete-cluster NAME 1605 | args: 1606 | - name: NAME 1607 | - name: config/delete-context 1608 | usage: delete-context NAME 1609 | args: 1610 | - name: NAME 1611 | - name: config/get-clusters 1612 | usage: get-clusters 1613 | - name: config/get-contexts 1614 | usage: get-contexts [(-o|--output=)name)] 1615 | optionsgroups: 1616 | - options: 1617 | - name: output 1618 | - name: no-headers 1619 | - name: config/rename-context 1620 | usage: rename-context CONTEXT_NAME NEW_NAME 1621 | args: 1622 | - name: CONTEXT_NAME 1623 | - name: NEW_NAME 1624 | - name: config/set 1625 | usage: set PROPERTY_NAME PROPERTY_VALUE 1626 | args: 1627 | - name: PROPERTY_NAME 1628 | - name: PROPERTY_VALUE 1629 | optionsgroups: 1630 | - options: 1631 | - name: set-raw-bytes 1632 | - name: config/set-cluster 1633 | usage: set-cluster NAME [--server=server] [--certificate-authority=path/to/certificate/authority] 1634 | [--insecure-skip-tls-verify=true] 1635 | args: 1636 | - name: NAME 1637 | optionsgroups: 1638 | - options: 1639 | - name: server 1640 | type: string 1641 | usage: server for the cluster entry in kubeconfig 1642 | shorthand: "" 1643 | - name: certificate-authority 1644 | type: string 1645 | usage: Path to certificate-authority file for the cluster entry in kubeconfig 1646 | - options: 1647 | - name: insecure-skip-tls-verify 1648 | type: tristate 1649 | usage: insecure-skip-tls-verify for the cluster entry in kubeconfig 1650 | default: "true" 1651 | - name: embed-certs 1652 | default: "true" 1653 | - name: config/set-context 1654 | usage: set-context [NAME | --current] [--cluster=cluster_nickname] [--user=user_nickname] 1655 | [--namespace=namespace] 1656 | args: 1657 | - name: NAME 1658 | optionsgroups: 1659 | - options: 1660 | - name: current 1661 | - name: cluster 1662 | type: string 1663 | usage: cluster for the context entry in kubeconfig 1664 | - name: user 1665 | type: string 1666 | usage: user for the context entry in kubeconfig 1667 | - name: namespace 1668 | type: string 1669 | usage: namespace for the context entry in kubeconfig 1670 | shorthand: "" 1671 | - name: config/set-credentials 1672 | usage: set-credentials NAME [--client-certificate=path/to/certfile] [--client-key=path/to/keyfile] 1673 | [--token=bearer_token] [--username=basic_user] [--password=basic_password] [--auth-provider=provider_name] 1674 | [--auth-provider-arg=key=value] [--exec-command=exec_command] [--exec-api-version=exec_api_version] 1675 | [--exec-arg=arg] [--exec-env=key=value] 1676 | optionsgroups: 1677 | - name: Client certificate 1678 | options: 1679 | - name: client-certificate 1680 | usage: Path to client certificate file for the user entry in kubeconfig 1681 | - name: client-key 1682 | usage: Path to client key file for the user entry in kubeconfig 1683 | - name: Bearer token 1684 | options: 1685 | - name: token 1686 | usage: token for the user entry in kubeconfig 1687 | - name: Basic auth 1688 | options: 1689 | - name: username 1690 | usage: username for the user entry in kubeconfig 1691 | - name: password 1692 | usage: password for the user entry in kubeconfig 1693 | - name: Auth provider 1694 | options: 1695 | - name: auth-provider 1696 | usage: Auth provider for the user entry in kubeconfig 1697 | - name: auth-provider-arg 1698 | usage: '''key=value'' arguments for the auth provider' 1699 | - name: Exec credential plugin 1700 | options: 1701 | - name: exec-command 1702 | usage: Command for the exec credential plugin for the user entry in kubeconfig 1703 | - name: exec-api-version 1704 | usage: API version of the exec credential plugin for the user entry in kubeconfig 1705 | - options: 1706 | - name: exec-arg 1707 | usage: New arguments for the exec credential plugin command for the user entry 1708 | in kubeconfig 1709 | - name: exec-env 1710 | usage: '''key=value'' environment values for the exec credential plugin' 1711 | - name: Switches 1712 | options: 1713 | - name: embed-certs 1714 | - name: config/unset 1715 | usage: unset PROPERTY_NAME 1716 | args: 1717 | - name: PROPERTY_NAME 1718 | - name: config/use-context 1719 | usage: use-context CONTEXT_NAME 1720 | args: 1721 | - name: CONTEXT_NAME 1722 | - name: config/view 1723 | usage: view 1724 | optionsgroups: 1725 | - name: Switches 1726 | options: 1727 | - name: flatten 1728 | - name: minify 1729 | - name: raw 1730 | - name: allow-missing-template-keys 1731 | - name: merge 1732 | - name: Output 1733 | options: 1734 | - name: output 1735 | - name: template 1736 | - name: explain 1737 | usage: explain RESOURCE 1738 | args: 1739 | - name: RESOURCE 1740 | optionsgroups: 1741 | - options: 1742 | - name: api-version 1743 | - name: recursive 1744 | - name: kustomize 1745 | usage: kustomize 1746 | args: 1747 | - name: DIR 1748 | - name: options 1749 | usage: options 1750 | - name: plugin 1751 | usage: plugin [flags] 1752 | - name: plugin/list 1753 | usage: list 1754 | optionsgroups: 1755 | - name: Other options 1756 | options: 1757 | - name: name-only 1758 | - name: version 1759 | usage: version 1760 | optionsgroups: 1761 | - name: Other options 1762 | options: 1763 | - name: client 1764 | - name: short 1765 | - name: output 1766 | -------------------------------------------------------------------------------- /generators/v1_18/toc.yaml: -------------------------------------------------------------------------------- 1 | categories: 2 | - name: Basic Commands (Beginner) 3 | commands: 4 | - name: create 5 | usage: create -f FILENAME 6 | optionsgroups: 7 | - options: 8 | - name: filename 9 | - name: kustomize 10 | - name: selector 11 | - name: Switches 12 | options: 13 | - name: recursive 14 | - name: edit 15 | - name: record 16 | - name: save-config 17 | - name: windows-line-endings 18 | - options: 19 | - name: allow-missing-template-keys 20 | - name: validate 21 | - {} 22 | - name: Output 23 | options: 24 | - name: output 25 | - name: template 26 | - name: Other options 27 | options: 28 | - name: dry-run 29 | - name: raw 30 | - name: create/clusterrole 31 | usage: clusterrole NAME --verb=verb --resource=resource.group [--resource-name=resourcename] 32 | [--dry-run=server|client|none] 33 | args: 34 | - name: NAME 35 | optionsgroups: 36 | - options: 37 | - name: verb 38 | required: true 39 | - name: resource 40 | required: true 41 | - options: 42 | - name: resource-name 43 | - name: non-resource-url 44 | - options: 45 | - name: aggregation-rule 46 | - name: Switches 47 | options: 48 | - name: save-config 49 | - name: validate 50 | - name: allow-missing-template-keys 51 | - name: Output 52 | options: 53 | - name: output 54 | - name: template 55 | - name: Other options 56 | options: 57 | - name: dry-run 58 | - name: create/clusterrolebinding 59 | usage: clusterrolebinding NAME --clusterrole=NAME [--user=username] [--group=groupname] 60 | [--serviceaccount=namespace:serviceaccountname] [--dry-run=server|client|none] 61 | args: 62 | - name: NAME 63 | optionsgroups: 64 | - options: 65 | - name: clusterrole 66 | required: true 67 | - name: user 68 | type: stringArray 69 | usage: Usernames to bind to the clusterrole 70 | - name: group 71 | - name: serviceaccount 72 | - name: Switches 73 | options: 74 | - name: save-config 75 | - name: allow-missing-template-keys 76 | - name: validate 77 | - name: Output 78 | options: 79 | - name: output 80 | - name: template 81 | - name: Other options 82 | options: 83 | - name: dry-run 84 | - name: generator 85 | - name: create/configmap 86 | usage: configmap NAME [--from-file=[key=]source] [--from-literal=key1=value1] 87 | [--dry-run=server|client|none] 88 | args: 89 | - name: NAME 90 | optionsgroups: 91 | - options: 92 | - name: from-env-file 93 | - name: from-file 94 | - name: from-literal 95 | - name: Switches 96 | options: 97 | - name: append-hash 98 | - name: save-config 99 | - name: allow-missing-template-keys 100 | - name: validate 101 | - name: Output 102 | options: 103 | - name: output 104 | - name: template 105 | - name: Other options 106 | options: 107 | - name: dry-run 108 | - name: generator 109 | - name: create/cronjob 110 | usage: cronjob NAME --image=image --schedule='0/5 * * * ?' -- [COMMAND] [args...] 111 | args: 112 | - name: NAME 113 | - name: -- 114 | end: true 115 | - name: COMMAND 116 | end: true 117 | choice: opt 118 | - name: args 119 | end: true 120 | choice: opt 121 | rep: repeat 122 | optionsgroups: 123 | - options: 124 | - name: image 125 | required: true 126 | - name: schedule 127 | required: true 128 | - name: restart 129 | - name: Switches 130 | options: 131 | - name: save-config 132 | - name: allow-missing-template-keys 133 | - name: validate 134 | - name: Output 135 | options: 136 | - name: output 137 | - name: template 138 | - name: Other options 139 | options: 140 | - name: dry-run 141 | - name: create/deployment 142 | usage: deployment NAME --image=image [--dry-run=server|client|none] 143 | args: 144 | - name: NAME 145 | optionsgroups: 146 | - options: 147 | - name: image 148 | required: true 149 | - name: Switches 150 | options: 151 | - name: save-config 152 | - name: allow-missing-template-keys 153 | - name: validate 154 | - name: Output 155 | options: 156 | - name: output 157 | - name: template 158 | - name: Other options 159 | options: 160 | - name: dry-run 161 | - name: generator 162 | - name: create/job 163 | usage: job NAME --image=image [--from=cronjob/name] -- [COMMAND] [args...] 164 | args: 165 | - name: NAME 166 | - name: -- 167 | end: true 168 | - name: COMMAND 169 | end: true 170 | choice: opt 171 | - name: args 172 | end: true 173 | choice: opt 174 | rep: repeat 175 | optionsgroups: 176 | - options: 177 | - name: image 178 | required: true 179 | - name: from 180 | - name: Switches 181 | options: 182 | - name: save-config 183 | - name: allow-missing-template-keys 184 | - name: validate 185 | - name: Output 186 | options: 187 | - name: output 188 | - name: template 189 | - name: Other options 190 | options: 191 | - name: dry-run 192 | - name: create/namespace 193 | usage: namespace NAME [--dry-run=server|client|none] 194 | args: 195 | - name: NAME 196 | optionsgroups: 197 | - name: Switches 198 | options: 199 | - name: save-config 200 | - name: allow-missing-template-keys 201 | - name: validate 202 | - name: Output 203 | options: 204 | - name: output 205 | - name: template 206 | - name: Other options 207 | options: 208 | - name: dry-run 209 | - name: generator 210 | - name: create/poddisruptionbudget 211 | usage: poddisruptionbudget NAME --selector=SELECTOR --min-available=N [--dry-run=server|client|none] 212 | args: 213 | - name: NAME 214 | optionsgroups: 215 | - options: 216 | - name: selector 217 | required: true 218 | - name: min-available 219 | required: true 220 | - name: max-unavailable 221 | - name: Switches 222 | options: 223 | - name: save-config 224 | - name: allow-missing-template-keys 225 | - name: validate 226 | - name: Output 227 | options: 228 | - name: output 229 | - name: template 230 | - name: Other options 231 | options: 232 | - name: dry-run 233 | - name: generator 234 | - name: create/priorityclass 235 | usage: priorityclass NAME --value=VALUE --global-default=BOOL [--dry-run=server|client|none] 236 | args: 237 | - name: NAME 238 | optionsgroups: 239 | - options: 240 | - name: value 241 | required: true 242 | - name: global-default 243 | - name: description 244 | - name: preemption-policy 245 | - name: Switches 246 | options: 247 | - name: save-config 248 | - name: allow-missing-template-keys 249 | - name: validate 250 | - name: Output 251 | options: 252 | - name: output 253 | - name: template 254 | - name: Other options 255 | options: 256 | - name: dry-run 257 | - name: generator 258 | - name: create/quota 259 | usage: quota NAME [--hard=key1=value1,key2=value2] [--scopes=Scope1,Scope2] [--dry-run=server|client|none] 260 | args: 261 | - name: NAME 262 | optionsgroups: 263 | - options: 264 | - name: hard 265 | - name: scopes 266 | - name: Switches 267 | options: 268 | - name: save-config 269 | - name: allow-missing-template-keys 270 | - name: validate 271 | - name: Output 272 | options: 273 | - name: output 274 | - name: template 275 | - name: Other options 276 | options: 277 | - name: dry-run 278 | - name: generator 279 | - name: create/role 280 | usage: role NAME --verb=verb --resource=resource.group/subresource [--resource-name=resourcename] 281 | [--dry-run=server|client|none] 282 | args: 283 | - name: NAME 284 | optionsgroups: 285 | - options: 286 | - name: verb 287 | required: true 288 | - name: resource 289 | required: true 290 | - options: 291 | - name: resource-name 292 | - name: Switches 293 | options: 294 | - name: save-config 295 | - name: allow-missing-template-keys 296 | - name: validate 297 | - name: Output 298 | options: 299 | - name: output 300 | - name: template 301 | - name: Other options 302 | options: 303 | - name: dry-run 304 | - name: create/rolebinding 305 | usage: rolebinding NAME --clusterrole=NAME|--role=NAME [--user=username] [--group=groupname] 306 | [--serviceaccount=namespace:serviceaccountname] [--dry-run=server|client|none] 307 | args: 308 | - name: NAME 309 | optionsgroups: 310 | - options: 311 | - name: clusterrole 312 | - name: role 313 | - options: 314 | - name: user 315 | - name: group 316 | - name: serviceaccount 317 | - name: Switches 318 | options: 319 | - name: save-config 320 | - name: allow-missing-template-keys 321 | - name: validate 322 | - name: Output 323 | options: 324 | - name: output 325 | - name: template 326 | - name: Other options 327 | options: 328 | - name: dry-run 329 | - name: generator 330 | - name: create/secret 331 | usage: secret 332 | - name: create/secret/generic 333 | usage: generic NAME [--type=string] [--from-file=[key=]source] [--from-literal=key1=value1] 334 | [--dry-run=server|client|none] 335 | args: 336 | - name: NAME 337 | optionsgroups: 338 | - options: 339 | - name: from-env-file 340 | - name: from-file 341 | - name: from-literal 342 | - options: 343 | - name: type 344 | - name: Switches 345 | options: 346 | - name: append-hash 347 | - name: save-config 348 | - options: 349 | - name: allow-missing-template-keys 350 | - name: validate 351 | - name: Output 352 | options: 353 | - name: output 354 | - name: template 355 | - name: Other options 356 | options: 357 | - name: dry-run 358 | - name: generator 359 | - name: create/secret/docker-registry 360 | usage: docker-registry NAME --docker-username=user --docker-password=password 361 | --docker-email=email [--docker-server=string] [--from-literal=key1=value1] [--dry-run=server|client|none] 362 | args: 363 | - name: NAME 364 | optionsgroups: 365 | - options: 366 | - name: docker-username 367 | required: true 368 | - name: docker-password 369 | required: true 370 | - options: 371 | - name: docker-email 372 | required: true 373 | - name: docker-server 374 | - options: 375 | - name: from-file 376 | - name: Switches 377 | options: 378 | - name: append-hash 379 | - name: save-config 380 | - options: 381 | - name: allow-missing-template-keys 382 | - name: validate 383 | - name: Output 384 | options: 385 | - name: output 386 | - name: template 387 | - name: Other options 388 | options: 389 | - name: dry-run 390 | - name: generator 391 | - name: create/secret/tls 392 | usage: tls NAME --cert=path/to/cert/file --key=path/to/key/file [--dry-run=server|client|none] 393 | args: 394 | - name: NAME 395 | optionsgroups: 396 | - options: 397 | - name: cert 398 | required: true 399 | - name: key 400 | required: true 401 | - name: Switches 402 | options: 403 | - name: append-hash 404 | - name: save-config 405 | - name: allow-missing-template-keys 406 | - name: validate 407 | - name: Output 408 | options: 409 | - name: output 410 | - name: template 411 | - name: Other options 412 | options: 413 | - name: dry-run 414 | - name: generator 415 | - name: create/service 416 | usage: service 417 | - name: create/service/clusterip 418 | usage: clusterip NAME [--tcp=:] [--dry-run=server|client|none] 419 | args: 420 | - name: NAME 421 | optionsgroups: 422 | - options: 423 | - name: tcp 424 | - name: clusterip 425 | - name: Switches 426 | options: 427 | - name: save-config 428 | - name: allow-missing-template-keys 429 | - name: validate 430 | - name: Output 431 | options: 432 | - name: output 433 | - name: template 434 | - name: Other options 435 | options: 436 | - name: dry-run 437 | - name: generator 438 | - name: create/service/externalname 439 | usage: externalname NAME --external-name external.name [--dry-run=server|client|none] 440 | args: 441 | - name: NAME 442 | optionsgroups: 443 | - options: 444 | - name: external-name 445 | required: true 446 | - name: tcp 447 | - name: Switches 448 | options: 449 | - name: save-config 450 | - name: allow-missing-template-keys 451 | - name: validate 452 | - name: Output 453 | options: 454 | - name: output 455 | - name: template 456 | - name: Other options 457 | options: 458 | - name: dry-run 459 | - name: generator 460 | - name: create/service/loadbalancer 461 | usage: loadbalancer NAME [--tcp=port:targetPort] [--dry-run=server|client|none] 462 | args: 463 | - name: NAME 464 | optionsgroups: 465 | - options: 466 | - name: tcp 467 | - name: Switches 468 | options: 469 | - name: save-config 470 | - name: allow-missing-template-keys 471 | - name: validate 472 | - name: Output 473 | options: 474 | - name: output 475 | - name: template 476 | - name: Other options 477 | options: 478 | - name: dry-run 479 | - name: generator 480 | - name: create/service/nodeport 481 | usage: nodeport NAME [--tcp=port:targetPort] [--dry-run=server|client|none] 482 | args: 483 | - name: NAME 484 | optionsgroups: 485 | - options: 486 | - name: tcp 487 | - name: node-port 488 | - name: Switches 489 | options: 490 | - name: save-config 491 | - name: allow-missing-template-keys 492 | - name: validate 493 | - name: Output 494 | options: 495 | - name: output 496 | - name: template 497 | - name: Other options 498 | options: 499 | - name: dry-run 500 | - name: generator 501 | - name: create/serviceaccount 502 | usage: serviceaccount NAME [--dry-run=server|client|none] 503 | args: 504 | - name: NAME 505 | optionsgroups: 506 | - name: Switches 507 | options: 508 | - name: save-config 509 | - name: allow-missing-template-keys 510 | - name: validate 511 | - name: Output 512 | options: 513 | - name: output 514 | - name: template 515 | - name: Other options 516 | options: 517 | - name: dry-run 518 | - name: generator 519 | - name: expose 520 | usage: expose (-f FILENAME | TYPE NAME) [--port=port] [--protocol=TCP|UDP|SCTP] 521 | [--target-port=number-or-name] [--name=name] [--external-ip=external-ip-of-service] 522 | [--type=type] 523 | optionsgroups: 524 | - options: 525 | - name: filename 526 | - name: kustomize 527 | - name: Service attributes 528 | options: 529 | - name: name 530 | - name: labels 531 | - name: selector 532 | - name: type 533 | - options: 534 | - name: cluster-ip 535 | - name: external-ip 536 | - name: load-balancer-ip 537 | - options: 538 | - name: port 539 | - name: target-port 540 | - name: container-port 541 | - options: 542 | - name: protocol 543 | - name: session-affinity 544 | - name: Switches 545 | options: 546 | - name: recursive 547 | - name: record 548 | - name: save-config 549 | - name: allow-missing-template-keys 550 | - name: Other options 551 | options: 552 | - name: generator 553 | - name: overrides 554 | - options: 555 | - name: output 556 | - name: template 557 | - options: 558 | - name: dry-run 559 | - name: run 560 | usage: run NAME --image=image [--env="key=value"] [--port=port] [--dry-run=server|client] 561 | [--overrides=inline-json] [--command] -- [COMMAND] [args...] 562 | args: 563 | - name: NAME 564 | - name: -- 565 | end: true 566 | - name: COMMAND 567 | end: true 568 | choice: opt 569 | - name: args 570 | end: true 571 | choice: opt 572 | rep: repeat 573 | optionsgroups: 574 | - options: 575 | - name: filename 576 | - name: kustomize 577 | - name: Resource attributes 578 | options: 579 | - name: replicas 580 | - name: labels 581 | - name: grace-period 582 | - name: schedule 583 | - options: 584 | - name: pod-running-timeout 585 | - name: restart 586 | - name: serviceaccount 587 | - name: Container attributes 588 | options: 589 | - name: image 590 | - name: image-pull-policy 591 | - name: env 592 | - options: 593 | - name: port 594 | - name: hostport 595 | - name: limits 596 | - name: requests 597 | - name: Switches 598 | options: 599 | - name: recursive 600 | - name: stdin 601 | - name: tty 602 | - name: attach 603 | - name: command 604 | - name: expose 605 | - name: force 606 | - options: 607 | - name: leave-stdin-open 608 | - name: quiet 609 | - name: record 610 | - name: rm 611 | - name: save-config 612 | - name: wait 613 | - options: 614 | - name: allow-missing-template-keys 615 | - name: cascade 616 | - name: Other options 617 | options: 618 | - name: output 619 | - name: template 620 | - options: 621 | - name: generator 622 | - name: service-generator 623 | - options: 624 | - name: overrides 625 | - name: service-overrides 626 | - options: 627 | - name: timeout 628 | - name: dry-run 629 | - name: set 630 | usage: set SUBCOMMAND 631 | - name: set/env 632 | usage: env RESOURCE/NAME KEY_1=VAL_1 ... KEY_N=VAL_N 633 | args: 634 | - name: RESOURCE/NAME 635 | - name: key=val 636 | rep: repeat 637 | optionsgroups: 638 | - options: 639 | - name: env 640 | - name: from 641 | - name: keys 642 | - name: prefix 643 | - name: Selections 644 | options: 645 | - name: filename 646 | - name: kustomize 647 | - name: selector 648 | - name: containers 649 | - name: Switches 650 | options: 651 | - name: recursive 652 | - name: all 653 | - name: list 654 | - name: local 655 | - name: resolve 656 | - options: 657 | - name: allow-missing-template-keys 658 | - name: overwrite 659 | - name: Output 660 | options: 661 | - name: output 662 | - name: template 663 | - name: Other options 664 | options: 665 | - name: dry-run 666 | - name: set/image 667 | usage: image (-f FILENAME | TYPE NAME) CONTAINER_NAME_1=CONTAINER_IMAGE_1 ... 668 | CONTAINER_NAME_N=CONTAINER_IMAGE_N 669 | args: 670 | - name: TYPE 671 | - name: NAME 672 | - name: containerName=image 673 | rep: repeat 674 | optionsgroups: 675 | - options: 676 | - name: filename 677 | - name: kustomize 678 | - name: selector 679 | - name: Switches 680 | options: 681 | - name: recursive 682 | - name: all 683 | - name: local 684 | - name: record 685 | - name: allow-missing-template-keys 686 | - name: Output 687 | options: 688 | - name: output 689 | - name: template 690 | - name: Other options 691 | options: 692 | - name: dry-run 693 | - name: set/resources 694 | usage: resources (-f FILENAME | TYPE NAME) ([--limits=LIMITS & --requests=REQUESTS] 695 | args: 696 | - name: TYPE 697 | - name: NAME 698 | optionsgroups: 699 | - options: 700 | - name: limits 701 | - name: requests 702 | - name: Selection 703 | options: 704 | - name: filename 705 | - name: kustomize 706 | - name: selector 707 | - name: containers 708 | - name: Switches 709 | options: 710 | - name: recursive 711 | - name: all 712 | - name: local 713 | - name: record 714 | - name: allow-missing-template-keys 715 | - name: Output 716 | options: 717 | - name: output 718 | - name: template 719 | - name: Other options 720 | options: 721 | - name: dry-run 722 | - name: set/selector 723 | usage: selector (-f FILENAME | TYPE NAME) EXPRESSIONS [--resource-version=version] 724 | args: 725 | - name: TYPE 726 | - name: NAME 727 | - name: EXPRESSIONS 728 | optionsgroups: 729 | - options: 730 | - name: filename 731 | - name: resource-version 732 | - name: Switches 733 | options: 734 | - name: all 735 | - name: local 736 | - name: record 737 | - options: 738 | - name: allow-missing-template-keys 739 | - name: recursive 740 | - name: Output 741 | options: 742 | - name: output 743 | - name: template 744 | - name: Other options 745 | options: 746 | - name: dry-run 747 | - name: set/serviceaccount 748 | usage: serviceaccount (-f FILENAME | TYPE NAME) SERVICE_ACCOUNT 749 | args: 750 | - name: TYPE 751 | - name: NAME 752 | - name: serviceAccount 753 | optionsgroups: 754 | - options: 755 | - name: filename 756 | - name: kustomize 757 | - name: Switches 758 | options: 759 | - name: recursive 760 | - name: all 761 | - name: local 762 | - name: record 763 | - name: allow-missing-template-keys 764 | - name: Output 765 | options: 766 | - name: output 767 | - name: template 768 | - name: Other options 769 | options: 770 | - name: dry-run 771 | - name: set/subject 772 | usage: subject (-f FILENAME | TYPE NAME) [--user=username] [--group=groupname] 773 | [--serviceaccount=namespace:serviceaccountname] [--dry-run=server|client|none] 774 | args: 775 | - name: TYPE 776 | - name: NAME 777 | optionsgroups: 778 | - options: 779 | - name: user 780 | type: stringArray 781 | usage: UserUsernames to bind to the role 782 | - name: group 783 | - name: serviceaccount 784 | - name: Selection 785 | options: 786 | - name: filename 787 | - name: kustomize 788 | - name: selector 789 | - name: Switches 790 | options: 791 | - name: recursive 792 | - name: all 793 | - name: local 794 | - name: allow-missing-template-keys 795 | - name: Output 796 | options: 797 | - name: output 798 | - name: template 799 | - name: Other options 800 | options: 801 | - name: dry-run 802 | - name: Basic Commands (Intermediate) 803 | commands: 804 | - name: explain 805 | usage: explain RESOURCE 806 | args: 807 | - name: RESOURCE 808 | optionsgroups: 809 | - options: 810 | - name: api-version 811 | - name: recursive 812 | - name: get 813 | usage: get [(-o|--output=)json|yaml|wide|custom-columns=...|custom-columns-file=...|go-template=...|go-template-file=...|jsonpath=...|jsonpath-file=...] 814 | (TYPE[.VERSION][.GROUP] [NAME | -l label] | TYPE[.VERSION][.GROUP]/NAME ...) 815 | [flags] 816 | args: 817 | - name: TYPE[.VERSION][.GROUP][/]NAME 818 | choice: opt 819 | rep: repeat 820 | optionsgroups: 821 | - options: 822 | - name: filename 823 | - name: kustomize 824 | - name: selector 825 | - name: field-selector 826 | - name: Switches 827 | options: 828 | - name: all-namespaces 829 | - name: recursive 830 | - name: watch 831 | - name: export 832 | - name: ignore-not-found 833 | - name: no-headers 834 | - name: output-watch-events 835 | - options: 836 | - name: show-kind 837 | - name: show-labels 838 | - name: use-openapi-print-columns 839 | - name: watch-only 840 | - options: 841 | - name: allow-missing-template-keys 842 | - name: server-print 843 | - name: Output 844 | options: 845 | - name: output 846 | - name: label-columns 847 | - name: sort-by 848 | - name: template 849 | - name: Other options 850 | - options: 851 | - name: chunk-size 852 | - name: raw 853 | - name: edit 854 | usage: edit (RESOURCE/NAME | -f FILENAME) 855 | args: 856 | - name: RESOURCE/NAME 857 | optionsgroups: 858 | - options: 859 | - name: filename 860 | - name: kustomize 861 | - name: Switches 862 | options: 863 | - name: recursive 864 | - name: output-patch 865 | - name: record 866 | - name: save-config 867 | - name: windows-line-endings 868 | - options: 869 | - name: allow-missing-template-keys 870 | - name: validate 871 | - name: Output 872 | options: 873 | - name: output 874 | - name: template 875 | - name: delete 876 | usage: delete ([-f FILENAME] | [-k DIRECTORY] | TYPE [(NAME | -l label | --all)]) 877 | args: 878 | - name: TYPE[,TYPE...] 879 | choice: opt 880 | - name: NAME 881 | choice: opt 882 | rep: repeat 883 | optionsgroups: 884 | - name: Selection 885 | options: 886 | - name: filename 887 | - name: kustomize 888 | - name: selector 889 | - name: field-selector 890 | - name: Switches 891 | options: 892 | - name: all-namespaces 893 | - name: recursive 894 | - name: all 895 | - name: force 896 | - name: ignore-not-found 897 | - name: now 898 | - name: cascade 899 | - name: wait 900 | - name: Other options 901 | options: 902 | - name: dry-run 903 | - name: grace-period 904 | - name: timeout 905 | - options: 906 | - name: output 907 | - name: raw 908 | - name: Deploy Commands 909 | commands: 910 | - name: rollout 911 | usage: rollout SUBCOMMAND 912 | - name: rollout/history 913 | usage: history (TYPE NAME | TYPE/NAME) [flags] 914 | args: 915 | - name: TYPE[/]NAME 916 | optionsgroups: 917 | - options: 918 | - name: filename 919 | - name: kustomize 920 | - name: revision 921 | - name: Switches 922 | options: 923 | - name: recursive 924 | - name: allow-missing-template-keys 925 | - name: Output 926 | options: 927 | - name: output 928 | - name: template 929 | - name: rollout/pause 930 | usage: pause RESOURCE 931 | args: 932 | - name: RESOURCE 933 | optionsgroups: 934 | - options: 935 | - name: filename 936 | - name: kustomize 937 | - name: Switches 938 | options: 939 | - name: recursive 940 | - name: allow-missing-template-keys 941 | - name: Output 942 | options: 943 | - name: output 944 | - name: template 945 | - name: rollout/restart 946 | usage: restart RESOURCE 947 | args: 948 | - name: RESOURCE 949 | optionsgroups: 950 | - options: 951 | - name: filename 952 | - name: kustomize 953 | - name: Switches 954 | options: 955 | - name: recursive 956 | - name: allow-missing-template-keys 957 | - name: Output 958 | options: 959 | - name: output 960 | - name: template 961 | - name: rollout/resume 962 | usage: resume RESOURCE 963 | args: 964 | - name: RESOURCE 965 | optionsgroups: 966 | - options: 967 | - name: filename 968 | - name: kustomize 969 | - name: Switches 970 | options: 971 | - name: recursive 972 | - name: allow-missing-template-keys 973 | - name: Output 974 | options: 975 | - name: output 976 | - name: template 977 | - name: rollout/status 978 | usage: status (TYPE NAME | TYPE/NAME) [flags] 979 | args: 980 | - name: TYPE[/]NAME 981 | optionsgroups: 982 | - options: 983 | - name: filename 984 | - name: kustomize 985 | - name: revision 986 | - name: timeout 987 | - name: Switches 988 | options: 989 | - name: recursive 990 | - name: watch 991 | - name: rollout/undo 992 | usage: undo (TYPE NAME | TYPE/NAME) [flags] 993 | args: 994 | - name: TYPE[/]NAME 995 | optionsgroups: 996 | - options: 997 | - name: filename 998 | - name: kustomize 999 | - name: to-revision 1000 | - name: Switches 1001 | options: 1002 | - name: recursive 1003 | - name: allow-missing-template-keys 1004 | - name: Output 1005 | options: 1006 | - name: output 1007 | - name: template 1008 | - name: Other options 1009 | options: 1010 | - name: dry-run 1011 | - name: scale 1012 | usage: scale [--resource-version=version] [--current-replicas=count] --replicas=COUNT 1013 | (-f FILENAME | TYPE NAME) 1014 | args: 1015 | - name: TYPE 1016 | - name: NAME 1017 | optionsgroups: 1018 | - options: 1019 | - name: replicas 1020 | required: true 1021 | - name: current-replicas 1022 | - name: timeout 1023 | - name: Selection 1024 | options: 1025 | - name: filename 1026 | - name: kustomize 1027 | - name: selector 1028 | - name: resource-version 1029 | - name: Switches 1030 | options: 1031 | - name: recursive 1032 | - name: all 1033 | - name: record 1034 | - name: allow-missing-template-keys 1035 | - name: Output 1036 | options: 1037 | - name: output 1038 | - name: template 1039 | - name: autoscale 1040 | usage: autoscale (-f FILENAME | TYPE NAME | TYPE/NAME) [--min=MINPODS] --max=MAXPODS 1041 | [--cpu-percent=CPU] 1042 | args: 1043 | - name: TYPE[/]NAME 1044 | optionsgroups: 1045 | - options: 1046 | - name: name 1047 | - name: min 1048 | - name: max 1049 | - name: cpu-percent 1050 | - name: Selection 1051 | options: 1052 | - name: filename 1053 | - name: kustomize 1054 | - name: Switches 1055 | options: 1056 | - name: recursive 1057 | - name: record 1058 | - name: save-config 1059 | - name: allow-missing-template-keys 1060 | - name: Output 1061 | options: 1062 | - name: output 1063 | - name: template 1064 | - name: Other options 1065 | options: 1066 | - name: dry-run 1067 | - name: generator 1068 | - name: Cluster Management Commands 1069 | commands: 1070 | - name: certificate 1071 | usage: certificate SUBCOMMAND 1072 | - name: certificate/approve 1073 | usage: approve (-f FILENAME | NAME) 1074 | args: 1075 | - name: NAME 1076 | optionsgroups: 1077 | - options: 1078 | - name: filename 1079 | - name: kustomize 1080 | - name: Switches 1081 | options: 1082 | - name: recursive 1083 | - name: force 1084 | - name: allow-missing-template-keys 1085 | - name: Output 1086 | options: 1087 | - name: output 1088 | - name: template 1089 | - name: certificate/deny 1090 | usage: deny (-f FILENAME | NAME) 1091 | args: 1092 | - name: NAME 1093 | optionsgroups: 1094 | - options: 1095 | - name: filename 1096 | - name: kustomize 1097 | - name: Switches 1098 | options: 1099 | - name: recursive 1100 | - name: force 1101 | - name: allow-missing-template-keys 1102 | - name: Output 1103 | options: 1104 | - name: output 1105 | - name: template 1106 | - name: cluster-info 1107 | usage: cluster-info 1108 | - name: cluster-info/dump 1109 | usage: dump 1110 | optionsgroups: 1111 | - options: 1112 | - name: namespaces 1113 | - name: pod-running-timeout 1114 | - name: Switches 1115 | options: 1116 | - name: all-namespaces 1117 | - name: allow-missing-template-keys 1118 | - name: Output 1119 | options: 1120 | - name: output 1121 | - name: output-directory 1122 | - name: template 1123 | - name: top 1124 | usage: top 1125 | - name: top/node 1126 | usage: node [NAME | -l label] 1127 | args: 1128 | - name: NAME 1129 | choice: opt 1130 | optionsgroups: 1131 | - options: 1132 | - name: selector 1133 | - name: sort-by 1134 | - name: no-headers 1135 | - options: 1136 | - name: heapster-namespace 1137 | - name: heapster-port 1138 | - options: 1139 | - name: heapster-scheme 1140 | - name: heapster-service 1141 | - name: top/pod 1142 | usage: pod [NAME | -l label] 1143 | args: 1144 | - name: NAME 1145 | choice: opt 1146 | optionsgroups: 1147 | - options: 1148 | - name: selector 1149 | - name: sort-by 1150 | - name: no-headers 1151 | - name: all-namespaces 1152 | - name: containers 1153 | - options: 1154 | - name: heapster-namespace 1155 | - name: heapster-port 1156 | - options: 1157 | - name: heapster-scheme 1158 | - name: heapster-service 1159 | - name: cordon 1160 | usage: cordon NODE 1161 | args: 1162 | - name: NODE 1163 | optionsgroups: 1164 | - options: 1165 | - name: selector 1166 | - name: dry-run 1167 | - name: uncordon 1168 | usage: uncordon NODE 1169 | args: 1170 | - name: NODE 1171 | optionsgroups: 1172 | - options: 1173 | - name: selector 1174 | - name: dry-run 1175 | - name: drain 1176 | usage: drain NODE 1177 | args: 1178 | - name: NODE 1179 | optionsgroups: 1180 | - options: 1181 | - name: pod-selector 1182 | - name: selector 1183 | - name: Switches 1184 | options: 1185 | - name: delete-local-data 1186 | - name: disable-eviction 1187 | - name: force 1188 | - name: ignore-daemonsets 1189 | - name: Other options 1190 | options: 1191 | - name: dry-run 1192 | - name: grace-period 1193 | - options: 1194 | - name: timeout 1195 | - name: skip-wait-for-delete-timeout 1196 | - name: taint 1197 | usage: taint NODE NAME KEY_1=VAL_1:TAINT_EFFECT_1 ... KEY_N=VAL_N:TAINT_EFFECT_N 1198 | args: 1199 | - name: NODE 1200 | - name: NAME 1201 | - name: Key=Val:Taint 1202 | rep: repeat 1203 | optionsgroups: 1204 | - options: 1205 | - name: selector 1206 | - name: Switches 1207 | options: 1208 | - name: all 1209 | - name: overwrite 1210 | - name: validate 1211 | - name: allow-missing-template-keys 1212 | - name: Output 1213 | options: 1214 | - name: output 1215 | - name: template 1216 | - name: Other options 1217 | options: 1218 | - name: dry-run 1219 | - name: Troubleshooting and Debugging Commands 1220 | commands: 1221 | - name: describe 1222 | usage: describe (-f FILENAME | TYPE [NAME_PREFIX | -l label] | TYPE/NAME) 1223 | args: 1224 | - name: TYPE[/]NamePrefix 1225 | optionsgroups: 1226 | - options: 1227 | - name: filename 1228 | - name: kustomize 1229 | - name: selector 1230 | - name: Switches 1231 | options: 1232 | - name: all-namespaces 1233 | - name: recursive 1234 | - name: show-events 1235 | - name: logs 1236 | usage: logs [-f] [-p] (POD | TYPE/NAME) [-c CONTAINER] 1237 | args: 1238 | - name: POD | TYPE/NAME 1239 | optionsgroups: 1240 | - name: Selection 1241 | options: 1242 | - name: container 1243 | - name: selector 1244 | - name: Switches 1245 | options: 1246 | - name: follow 1247 | - name: previous 1248 | - name: all-containers 1249 | - name: ignore-errors 1250 | - name: insecure-skip-tls-verify-backend 1251 | - options: 1252 | - name: prefix 1253 | - name: timestamps 1254 | - name: Other options 1255 | options: 1256 | - name: limit-bytes 1257 | - name: max-log-requests 1258 | - name: pod-running-timeout 1259 | - options: 1260 | - name: since 1261 | - name: since-time 1262 | - name: tail 1263 | - name: attach 1264 | usage: attach (POD | TYPE/NAME) -c CONTAINER 1265 | args: 1266 | - name: POD | TYPE/NAME 1267 | optionsgroups: 1268 | - options: 1269 | - name: container 1270 | - name: stdin 1271 | - name: tty 1272 | - name: pod-running-timeout 1273 | - name: exec 1274 | usage: exec (POD | TYPE/NAME) [-c CONTAINER] [flags] -- COMMAND [args...] 1275 | args: 1276 | - name: POD | TYPE/NAME | -f FILENAME 1277 | - name: -- 1278 | end: true 1279 | - name: COMMAND 1280 | end: true 1281 | - name: args 1282 | end: true 1283 | choice: opt 1284 | rep: repeat 1285 | optionsgroups: 1286 | - options: 1287 | - name: filename 1288 | - name: container 1289 | - name: stdin 1290 | - name: tty 1291 | - name: pod-running-timeout 1292 | - name: port-forward 1293 | usage: port-forward TYPE/NAME [options] [LOCAL_PORT:]REMOTE_PORT [...[LOCAL_PORT_N:]REMOTE_PORT_N] 1294 | args: 1295 | - name: TYPE/NAME 1296 | - name: '[LocalPort:]RemotePort' 1297 | rep: repeat 1298 | optionsgroups: 1299 | - options: 1300 | - name: address 1301 | - name: pod-running-timeout 1302 | - name: proxy 1303 | usage: proxy [--port=PORT] [--www=static-dir] [--www-prefix=prefix] [--api-prefix=prefix] 1304 | optionsgroups: 1305 | - options: 1306 | - name: port 1307 | - name: address 1308 | - name: unix-socket 1309 | - options: 1310 | - name: www 1311 | - name: www-prefix 1312 | - name: api-prefix 1313 | - options: 1314 | - name: accept-hosts 1315 | - name: accept-paths 1316 | - options: 1317 | - name: reject-methods 1318 | - name: reject-paths 1319 | - options: 1320 | - name: keepalive 1321 | - name: disable-filter 1322 | - name: cp 1323 | usage: cp 1324 | args: 1325 | - name: fileSpecSrc 1326 | - name: fileSpecDest 1327 | optionsgroups: 1328 | - options: 1329 | - name: container 1330 | - name: no-preserve 1331 | - name: auth 1332 | usage: auth 1333 | - name: auth/can-i 1334 | usage: can-i VERB [TYPE | TYPE/NAME | NONRESOURCEURL] 1335 | args: 1336 | - name: VERB 1337 | - name: TYPE | TYPE/NAME | NonResourceURL 1338 | choice: opt 1339 | optionsgroups: 1340 | - options: 1341 | - name: subresource 1342 | - name: all-namespaces 1343 | - name: quiet 1344 | - name: list 1345 | - name: no-headers 1346 | - name: auth/reconcile 1347 | usage: reconcile -f FILENAME 1348 | optionsgroups: 1349 | - options: 1350 | - name: filename 1351 | - name: kustomize 1352 | - options: 1353 | - name: remove-extra-permissions 1354 | - name: remove-extra-subjects 1355 | - name: Switches 1356 | options: 1357 | - name: recursive 1358 | - name: allow-missing-template-keys 1359 | - name: Output 1360 | options: 1361 | - name: output 1362 | - name: template 1363 | - name: Other options 1364 | options: 1365 | - name: dry-run 1366 | - name: Advanced Commands 1367 | commands: 1368 | - name: diff 1369 | usage: diff -f FILENAME 1370 | optionsgroups: 1371 | - options: 1372 | - name: filename 1373 | - name: kustomize 1374 | - name: Switches 1375 | options: 1376 | - name: recursive 1377 | - name: force-conflicts 1378 | - name: server-side 1379 | - name: Other options 1380 | options: 1381 | - name: field-manager 1382 | - name: apply 1383 | usage: apply (-f FILENAME | -k DIRECTORY) 1384 | optionsgroups: 1385 | - options: 1386 | - name: filename 1387 | - name: kustomize 1388 | - name: selector 1389 | - name: Switches 1390 | options: 1391 | - name: recursive 1392 | - name: all 1393 | - name: force 1394 | - name: force-conflicts 1395 | - name: prune 1396 | - name: record 1397 | - options: 1398 | - name: server-dry-run 1399 | - name: server-side 1400 | - name: wait 1401 | - options: 1402 | - name: allow-missing-template-keys 1403 | - name: cascade 1404 | - name: openapi-patch 1405 | - options: 1406 | - name: overwrite 1407 | - name: validate 1408 | - name: Output 1409 | options: 1410 | - name: output 1411 | - name: template 1412 | - name: Other options 1413 | options: 1414 | - name: field-manager 1415 | - name: grace-period 1416 | - name: prune-whitelist 1417 | - options: 1418 | - name: timeout 1419 | - name: dry-run 1420 | - name: apply/edit-last-applied 1421 | usage: edit-last-applied (RESOURCE/NAME | -f FILENAME) 1422 | args: 1423 | - name: RESOURCE/NAME 1424 | optionsgroups: 1425 | - options: 1426 | - name: filename 1427 | - name: kustomize 1428 | - name: Switches 1429 | options: 1430 | - name: recursive 1431 | - name: record 1432 | - name: windows-line-endings 1433 | - name: allow-missing-template-keys 1434 | - name: Output 1435 | options: 1436 | - name: output 1437 | - name: template 1438 | - name: apply/set-last-applied 1439 | usage: set-last-applied -f FILENAME 1440 | optionsgroups: 1441 | - options: 1442 | - name: filename 1443 | - name: Switches 1444 | options: 1445 | - name: create-annotation 1446 | - name: allow-missing-template-keys 1447 | - name: Output 1448 | options: 1449 | - name: output 1450 | - name: template 1451 | - name: Other options 1452 | options: 1453 | - name: dry-run 1454 | - name: apply/view-last-applied 1455 | usage: view-last-applied (TYPE [NAME | -l label] | TYPE/NAME | -f FILENAME) 1456 | args: 1457 | - name: TYPE[/]NAME 1458 | optionsgroups: 1459 | - options: 1460 | - name: filename 1461 | - name: kustomize 1462 | - name: selector 1463 | - name: Switches 1464 | options: 1465 | - name: recursive 1466 | - name: all 1467 | - name: Output 1468 | options: 1469 | - name: output 1470 | - name: patch 1471 | usage: patch (-f FILENAME | TYPE NAME) -p PATCH 1472 | args: 1473 | - name: TYPE 1474 | - name: NAME 1475 | optionsgroups: 1476 | - options: 1477 | - name: patch 1478 | - name: type 1479 | - name: Selection 1480 | options: 1481 | - name: filename 1482 | - name: kustomize 1483 | - name: Switches 1484 | options: 1485 | - name: recursive 1486 | - name: local 1487 | - name: record 1488 | - name: allow-missing-template-keys 1489 | - name: Output 1490 | options: 1491 | - name: output 1492 | - name: template 1493 | - name: Other options 1494 | options: 1495 | - name: dry-run 1496 | - name: replace 1497 | usage: replace -f FILENAME 1498 | optionsgroups: 1499 | - options: 1500 | - name: filename 1501 | - name: kustomize 1502 | - name: Switches 1503 | options: 1504 | - name: recursive 1505 | - name: force 1506 | - name: save-config 1507 | - name: wait 1508 | - options: 1509 | - name: allow-missing-template-keys 1510 | - name: cascade 1511 | - name: validate 1512 | - name: Output 1513 | options: 1514 | - name: output 1515 | - name: template 1516 | - name: Other options 1517 | options: 1518 | - name: dry-run 1519 | - name: grace-period 1520 | - name: raw 1521 | - name: timeout 1522 | - name: wait 1523 | usage: wait ([-f FILENAME] | resource.group/resource.name | resource.group [(-l 1524 | label | --all)]) [--for=delete|--for condition=available] 1525 | optionsgroups: 1526 | - options: 1527 | - name: for 1528 | - name: timeout 1529 | - name: Selection 1530 | options: 1531 | - name: filename 1532 | - name: selector 1533 | - name: field-selector 1534 | - name: Switches 1535 | options: 1536 | - name: all-namespaces 1537 | - name: all 1538 | - name: local 1539 | - name: allow-missing-template-keys 1540 | - name: recursive 1541 | - name: Output 1542 | options: 1543 | - name: output 1544 | - name: template 1545 | - name: convert 1546 | usage: convert -f FILENAME 1547 | optionsgroups: 1548 | - options: 1549 | - name: filename 1550 | - name: kustomize 1551 | - name: output-version 1552 | - name: Switches 1553 | options: 1554 | - name: recursive 1555 | - name: allow-missing-template-keys 1556 | - name: local 1557 | - name: validate 1558 | - name: Output 1559 | options: 1560 | - name: output 1561 | - name: template 1562 | - name: kustomize 1563 | usage: kustomize 1564 | args: 1565 | - name: DIR 1566 | - name: Settings Commands 1567 | commands: 1568 | - name: label 1569 | usage: label [--overwrite] (-f FILENAME | TYPE NAME) KEY_1=VAL_1 ... KEY_N=VAL_N 1570 | [--resource-version=version] 1571 | args: 1572 | - name: TYPE 1573 | - name: NAME 1574 | - name: key=val 1575 | end: true 1576 | rep: repeat 1577 | optionsgroups: 1578 | - options: 1579 | - name: filename 1580 | - name: kustomize 1581 | - options: 1582 | - name: selector 1583 | - name: field-selector 1584 | - name: resource-version 1585 | - name: Switches 1586 | options: 1587 | - name: recursive 1588 | - name: all 1589 | - name: list 1590 | - name: local 1591 | - name: overwrite 1592 | - name: record 1593 | - options: 1594 | - name: allow-missing-template-keys 1595 | - name: Output 1596 | options: 1597 | - name: output 1598 | - name: template 1599 | - name: Other options 1600 | options: 1601 | - name: dry-run 1602 | - name: annotate 1603 | usage: annotate [--overwrite] (-f FILENAME | TYPE NAME) KEY_1=VAL_1 ... KEY_N=VAL_N 1604 | [--resource-version=version] 1605 | args: 1606 | - name: TYPE 1607 | - name: NAME 1608 | - name: key=val 1609 | end: true 1610 | rep: repeat 1611 | optionsgroups: 1612 | - options: 1613 | - name: filename 1614 | - name: kustomize 1615 | - name: selector 1616 | - name: field-selector 1617 | - name: Switches 1618 | options: 1619 | - name: recursive 1620 | - name: all 1621 | - name: local 1622 | - name: overwrite 1623 | - name: record 1624 | - options: 1625 | - name: allow-missing-template-keys 1626 | - name: Other options 1627 | options: 1628 | - name: resource-version 1629 | - name: output 1630 | - name: template 1631 | - name: dry-run 1632 | - name: completion 1633 | usage: completion SHELL 1634 | args: 1635 | - name: SHELL 1636 | - name: Other Commands 1637 | commands: 1638 | - name: alpha 1639 | usage: alpha 1640 | - name: alpha/debug 1641 | usage: debug NAME --image=image [ -- COMMAND [args...] ] 1642 | args: 1643 | - name: NAME 1644 | - name: -- 1645 | end: true 1646 | - name: COMMAND 1647 | end: true 1648 | - name: args 1649 | end: true 1650 | choice: opt 1651 | rep: repeat 1652 | optionsgroups: 1653 | - options: 1654 | - name: image 1655 | required: true 1656 | - name: container 1657 | - name: target 1658 | - options: 1659 | - name: env 1660 | - name: image-pull-policy 1661 | - name: Switches 1662 | options: 1663 | - name: stdin 1664 | - name: tty 1665 | - name: arguments-only 1666 | - name: attach 1667 | - name: quiet 1668 | - name: api-resources 1669 | usage: api-resources 1670 | optionsgroups: 1671 | - options: 1672 | - name: api-group 1673 | - name: verbs 1674 | - name: sort-by 1675 | - name: output 1676 | - name: Switches 1677 | options: 1678 | - name: cached 1679 | - name: no-headers 1680 | - name: namespaced 1681 | - name: api-versions 1682 | usage: api-versions 1683 | - name: config 1684 | usage: config SUBCOMMAND 1685 | - name: config/current-context 1686 | usage: current-context 1687 | - name: config/delete-cluster 1688 | usage: delete-cluster NAME 1689 | args: 1690 | - name: NAME 1691 | - name: config/delete-context 1692 | usage: delete-context NAME 1693 | args: 1694 | - name: NAME 1695 | - name: config/get-clusters 1696 | usage: get-clusters 1697 | - name: config/get-contexts 1698 | usage: get-contexts [(-o|--output=)name)] 1699 | optionsgroups: 1700 | - options: 1701 | - name: output 1702 | - name: no-headers 1703 | - name: config/rename-context 1704 | usage: rename-context CONTEXT_NAME NEW_NAME 1705 | args: 1706 | - name: CONTEXT_NAME 1707 | - name: NEW_NAME 1708 | - name: config/set 1709 | usage: set PROPERTY_NAME PROPERTY_VALUE 1710 | args: 1711 | - name: PROPERTY_NAME 1712 | - name: PROPERTY_VALUE 1713 | optionsgroups: 1714 | - options: 1715 | - name: set-raw-bytes 1716 | - name: config/set-cluster 1717 | usage: set-cluster NAME [--server=server] [--certificate-authority=path/to/certificate/authority] 1718 | [--insecure-skip-tls-verify=true] [--tls-server-name=example.com] 1719 | args: 1720 | - name: NAME 1721 | optionsgroups: 1722 | - options: 1723 | - name: server 1724 | type: string 1725 | usage: server for the cluster entry in kubeconfig 1726 | shorthand: "" 1727 | - name: certificate-authority 1728 | type: string 1729 | usage: Path to certificate-authority file for the cluster entry in kubeconfig 1730 | - options: 1731 | - name: insecure-skip-tls-verify 1732 | type: tristate 1733 | usage: insecure-skip-tls-verify for the cluster entry in kubeconfig 1734 | default: "true" 1735 | - name: embed-certs 1736 | default: "true" 1737 | - name: config/set-context 1738 | usage: set-context [NAME | --current] [--cluster=cluster_nickname] [--user=user_nickname] 1739 | [--namespace=namespace] 1740 | args: 1741 | - name: NAME 1742 | optionsgroups: 1743 | - options: 1744 | - name: current 1745 | - name: cluster 1746 | type: string 1747 | usage: cluster for the context entry in kubeconfig 1748 | - name: user 1749 | type: string 1750 | usage: user for the context entry in kubeconfig 1751 | - name: namespace 1752 | type: string 1753 | usage: namespace for the context entry in kubeconfig 1754 | shorthand: "" 1755 | - name: config/set-credentials 1756 | usage: set-credentials NAME [--client-certificate=path/to/certfile] [--client-key=path/to/keyfile] 1757 | [--token=bearer_token] [--username=basic_user] [--password=basic_password] [--auth-provider=provider_name] 1758 | [--auth-provider-arg=key=value] [--exec-command=exec_command] [--exec-api-version=exec_api_version] 1759 | [--exec-arg=arg] [--exec-env=key=value] 1760 | optionsgroups: 1761 | - name: Client certificate 1762 | options: 1763 | - name: client-certificate 1764 | usage: Path to client certificate file for the user entry in kubeconfig 1765 | - name: client-key 1766 | usage: Path to client key file for the user entry in kubeconfig 1767 | - name: Bearer token 1768 | options: 1769 | - name: token 1770 | usage: token for the user entry in kubeconfig 1771 | - name: Basic auth 1772 | options: 1773 | - name: username 1774 | usage: username for the user entry in kubeconfig 1775 | - name: password 1776 | usage: password for the user entry in kubeconfig 1777 | - name: Auth provider 1778 | options: 1779 | - name: auth-provider 1780 | usage: Auth provider for the user entry in kubeconfig 1781 | - name: auth-provider-arg 1782 | usage: '''key=value'' arguments for the auth provider' 1783 | - name: Exec credential plugin 1784 | options: 1785 | - name: exec-command 1786 | usage: Command for the exec credential plugin for the user entry in kubeconfig 1787 | - name: exec-api-version 1788 | usage: API version of the exec credential plugin for the user entry in kubeconfig 1789 | - options: 1790 | - name: exec-arg 1791 | usage: New arguments for the exec credential plugin command for the user entry 1792 | in kubeconfig 1793 | - name: exec-env 1794 | usage: '''key=value'' environment values for the exec credential plugin' 1795 | - name: Switches 1796 | options: 1797 | - name: embed-certs 1798 | - name: config/unset 1799 | usage: unset PROPERTY_NAME 1800 | args: 1801 | - name: PROPERTY_NAME 1802 | - name: config/use-context 1803 | usage: use-context CONTEXT_NAME 1804 | args: 1805 | - name: CONTEXT_NAME 1806 | - name: config/view 1807 | usage: view 1808 | optionsgroups: 1809 | - name: Switches 1810 | options: 1811 | - name: flatten 1812 | - name: minify 1813 | - name: raw 1814 | - name: allow-missing-template-keys 1815 | - name: merge 1816 | - name: Output 1817 | options: 1818 | - name: output 1819 | - name: template 1820 | - name: plugin 1821 | usage: plugin [flags] 1822 | - name: plugin/list 1823 | usage: list 1824 | optionsgroups: 1825 | - name: Other options 1826 | options: 1827 | - name: name-only 1828 | - name: version 1829 | usage: version 1830 | optionsgroups: 1831 | - name: Other options 1832 | options: 1833 | - name: client 1834 | - name: short 1835 | - name: output 1836 | - name: options 1837 | usage: options 1838 | -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- 1 | module github.com/feloy/kubectl-reference 2 | 3 | go 1.22.0 4 | 5 | toolchain go1.22.9 6 | 7 | require ( 8 | github.com/jinzhu/copier v0.4.0 9 | github.com/spf13/cobra v1.8.1 10 | github.com/spf13/pflag v1.0.5 11 | gopkg.in/yaml.v2 v2.4.0 12 | k8s.io/kubectl v0.31.3 13 | ) 14 | 15 | require ( 16 | github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect 17 | github.com/MakeNowJust/heredoc v1.0.0 // indirect 18 | github.com/blang/semver/v4 v4.0.0 // indirect 19 | github.com/chai2010/gettext-go v1.0.2 // indirect 20 | github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect 21 | github.com/daviddengcn/go-colortext v1.0.0 // indirect 22 | github.com/distribution/reference v0.5.0 // indirect 23 | github.com/emicklei/go-restful/v3 v3.11.0 // indirect 24 | github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d // indirect 25 | github.com/fatih/camelcase v1.0.0 // indirect 26 | github.com/fxamacker/cbor/v2 v2.7.0 // indirect 27 | github.com/go-errors/errors v1.4.2 // indirect 28 | github.com/go-logr/logr v1.4.2 // indirect 29 | github.com/go-openapi/jsonpointer v0.19.6 // indirect 30 | github.com/go-openapi/jsonreference v0.20.2 // indirect 31 | github.com/go-openapi/swag v0.22.4 // indirect 32 | github.com/gogo/protobuf v1.3.2 // indirect 33 | github.com/golang/protobuf v1.5.4 // indirect 34 | github.com/google/btree v1.0.1 // indirect 35 | github.com/google/gnostic-models v0.6.8 // indirect 36 | github.com/google/go-cmp v0.6.0 // indirect 37 | github.com/google/gofuzz v1.2.0 // indirect 38 | github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect 39 | github.com/google/uuid v1.6.0 // indirect 40 | github.com/gorilla/websocket v1.5.0 // indirect 41 | github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 // indirect 42 | github.com/imdario/mergo v0.3.6 // indirect 43 | github.com/inconshreveable/mousetrap v1.1.0 // indirect 44 | github.com/jonboulle/clockwork v0.2.2 // indirect 45 | github.com/josharian/intern v1.0.0 // indirect 46 | github.com/json-iterator/go v1.1.12 // indirect 47 | github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de // indirect 48 | github.com/lithammer/dedent v1.1.0 // indirect 49 | github.com/mailru/easyjson v0.7.7 // indirect 50 | github.com/mitchellh/go-wordwrap v1.0.1 // indirect 51 | github.com/moby/spdystream v0.4.0 // indirect 52 | github.com/moby/term v0.5.0 // indirect 53 | github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect 54 | github.com/modern-go/reflect2 v1.0.2 // indirect 55 | github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 // indirect 56 | github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect 57 | github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect 58 | github.com/opencontainers/go-digest v1.0.0 // indirect 59 | github.com/peterbourgon/diskv v2.0.1+incompatible // indirect 60 | github.com/pkg/errors v0.9.1 // indirect 61 | github.com/russross/blackfriday/v2 v2.1.0 // indirect 62 | github.com/x448/float16 v0.8.4 // indirect 63 | github.com/xlab/treeprint v1.2.0 // indirect 64 | go.starlark.net v0.0.0-20230525235612-a134d8f9ddca // indirect 65 | golang.org/x/net v0.26.0 // indirect 66 | golang.org/x/oauth2 v0.21.0 // indirect 67 | golang.org/x/sync v0.7.0 // indirect 68 | golang.org/x/sys v0.21.0 // indirect 69 | golang.org/x/term v0.21.0 // indirect 70 | golang.org/x/text v0.16.0 // indirect 71 | golang.org/x/time v0.3.0 // indirect 72 | google.golang.org/protobuf v1.34.2 // indirect 73 | gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect 74 | gopkg.in/inf.v0 v0.9.1 // indirect 75 | gopkg.in/yaml.v3 v3.0.1 // indirect 76 | k8s.io/api v0.31.3 // indirect 77 | k8s.io/apimachinery v0.31.3 // indirect 78 | k8s.io/cli-runtime v0.31.3 // indirect 79 | k8s.io/client-go v0.31.3 // indirect 80 | k8s.io/component-base v0.31.3 // indirect 81 | k8s.io/component-helpers v0.31.3 // indirect 82 | k8s.io/klog/v2 v2.130.1 // indirect 83 | k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect 84 | k8s.io/metrics v0.31.3 // indirect 85 | k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 // indirect 86 | sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect 87 | sigs.k8s.io/kustomize/api v0.17.2 // indirect 88 | sigs.k8s.io/kustomize/kustomize/v5 v5.4.2 // indirect 89 | sigs.k8s.io/kustomize/kyaml v0.17.1 // indirect 90 | sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect 91 | sigs.k8s.io/yaml v1.4.0 // indirect 92 | ) 93 | -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- 1 | cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= 2 | github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= 3 | github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= 4 | github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= 5 | github.com/MakeNowJust/heredoc v1.0.0 h1:cXCdzVdstXyiTqTvfqk9SDHpKNjxuom+DOlyEeQ4pzQ= 6 | github.com/MakeNowJust/heredoc v1.0.0/go.mod h1:mG5amYoWBHf8vpLOuehzbGGw0EHxpZZ6lCpQ4fNJ8LE= 7 | github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= 8 | github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= 9 | github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM= 10 | github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ= 11 | github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= 12 | github.com/chai2010/gettext-go v1.0.2 h1:1Lwwip6Q2QGsAdl/ZKPCwTe9fe0CjlUbqj5bFNSjIRk= 13 | github.com/chai2010/gettext-go v1.0.2/go.mod h1:y+wnP2cHYaVj19NZhYKAwEMH2CI1gNHeQQ+5AjwawxA= 14 | github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= 15 | github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= 16 | github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= 17 | github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= 18 | github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= 19 | github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= 20 | github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= 21 | github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= 22 | github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 23 | github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 24 | github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= 25 | github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 26 | github.com/daviddengcn/go-colortext v1.0.0 h1:ANqDyC0ys6qCSvuEK7l3g5RaehL/Xck9EX8ATG8oKsE= 27 | github.com/daviddengcn/go-colortext v1.0.0/go.mod h1:zDqEI5NVUop5QPpVJUxE9UO10hRnmkD5G4Pmri9+m4c= 28 | github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= 29 | github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= 30 | github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g= 31 | github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= 32 | github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= 33 | github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= 34 | github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d h1:105gxyaGwCFad8crR9dcMQWvV9Hvulu6hwUh4tWPJnM= 35 | github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZMPRZwes7CROmyNKgQzC3XPs6L/G2EJLHddWejkmf4= 36 | github.com/fatih/camelcase v1.0.0 h1:hxNvNX/xYBp0ovncs8WyWZrOrpBNub/JfaMvbURyft8= 37 | github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= 38 | github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E= 39 | github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= 40 | github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= 41 | github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= 42 | github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= 43 | github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= 44 | github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE= 45 | github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs= 46 | github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE= 47 | github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= 48 | github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= 49 | github.com/go-openapi/swag v0.22.4 h1:QLMzNJnMGPRNDCbySlcj1x01tzU8/9LTTL9hZZZogBU= 50 | github.com/go-openapi/swag v0.22.4/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= 51 | github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= 52 | github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= 53 | github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= 54 | github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= 55 | github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= 56 | github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= 57 | github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= 58 | github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= 59 | github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= 60 | github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= 61 | github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= 62 | github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= 63 | github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= 64 | github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= 65 | github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= 66 | github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= 67 | github.com/golangplus/bytes v0.0.0-20160111154220-45c989fe5450/go.mod h1:Bk6SMAONeMXrxql8uvOKuAZSu8aM5RUGv+1C6IJaEho= 68 | github.com/golangplus/bytes v1.0.0/go.mod h1:AdRaCFwmc/00ZzELMWb01soso6W1R/++O1XL80yAn+A= 69 | github.com/golangplus/fmt v1.0.0/go.mod h1:zpM0OfbMCjPtd2qkTD/jX2MgiFCqklhSUFyDW44gVQE= 70 | github.com/golangplus/testing v1.0.0 h1:+ZeeiKZENNOMkTTELoSySazi+XaEhVO0mb+eanrSEUQ= 71 | github.com/golangplus/testing v1.0.0/go.mod h1:ZDreixUV3YzhoVraIDyOzHrr76p6NUh6k/pPg/Q3gYA= 72 | github.com/google/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4= 73 | github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= 74 | github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I= 75 | github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U= 76 | github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= 77 | github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= 78 | github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= 79 | github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= 80 | github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= 81 | github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= 82 | github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= 83 | github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= 84 | github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= 85 | github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= 86 | github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= 87 | github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= 88 | github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af h1:kmjWCqn2qkEml422C2Rrd27c3VGxi6a/6HNq8QmHRKM= 89 | github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af/go.mod h1:K1liHPHnj73Fdn/EKuT8nrFqBihUSKXoLYU0BuatOYo= 90 | github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= 91 | github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= 92 | github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= 93 | github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= 94 | github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= 95 | github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= 96 | github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 h1:pdN6V1QBWetyv/0+wjACpqVH+eVULgEjkurDLq3goeM= 97 | github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= 98 | github.com/imdario/mergo v0.3.6 h1:xTNEAn+kxVO7dTZGu0CegyqKZmoWFI0rF8UxjlB2d28= 99 | github.com/imdario/mergo v0.3.6/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= 100 | github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= 101 | github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= 102 | github.com/jinzhu/copier v0.4.0 h1:w3ciUoD19shMCRargcpm0cm91ytaBhDvuRpz1ODO/U8= 103 | github.com/jinzhu/copier v0.4.0/go.mod h1:DfbEm0FYsaqBcKcFuvmOZb218JkPGtvSHsKg8S8hyyg= 104 | github.com/jonboulle/clockwork v0.2.2 h1:UOGuzwb1PwsrDAObMuhUnj0p5ULPj8V/xJ7Kx9qUBdQ= 105 | github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8= 106 | github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= 107 | github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= 108 | github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= 109 | github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= 110 | github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= 111 | github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= 112 | github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= 113 | github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= 114 | github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= 115 | github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= 116 | github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= 117 | github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= 118 | github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= 119 | github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de h1:9TO3cAIGXtEhnIaL+V+BEER86oLrvS+kWobKpbJuye0= 120 | github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE= 121 | github.com/lithammer/dedent v1.1.0 h1:VNzHMVCBNG1j0fh3OrsFRkVUwStdDArbgBWoPAffktY= 122 | github.com/lithammer/dedent v1.1.0/go.mod h1:jrXYCQtgg0nJiN+StA2KgR7w6CiQNv9Fd/Z9BP0jIOc= 123 | github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= 124 | github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= 125 | github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0= 126 | github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0= 127 | github.com/moby/spdystream v0.4.0 h1:Vy79D6mHeJJjiPdFEL2yku1kl0chZpJfZcPpb16BRl8= 128 | github.com/moby/spdystream v0.4.0/go.mod h1:xBAYlnt/ay+11ShkdFKNAG7LsyK/tmNBVvVOwrfMgdI= 129 | github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= 130 | github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= 131 | github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= 132 | github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= 133 | github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= 134 | github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= 135 | github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= 136 | github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 h1:n6/2gBQ3RWajuToeY6ZtZTIKv2v7ThUy5KKusIT0yc0= 137 | github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00/go.mod h1:Pm3mSP3c5uWn86xMLZ5Sa7JB9GsEZySvHYXCTK4E9q4= 138 | github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= 139 | github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= 140 | github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J1GEMiLbxo1LJaP8RfCpH6pymGZus= 141 | github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= 142 | github.com/onsi/ginkgo/v2 v2.19.0 h1:9Cnnf7UHo57Hy3k6/m5k3dRfGTMXGvxhHFvkDTCTpvA= 143 | github.com/onsi/ginkgo/v2 v2.19.0/go.mod h1:rlwLi9PilAFJ8jCg9UE1QP6VBpd6/xj3SRC0d6TU0To= 144 | github.com/onsi/gomega v1.33.1 h1:dsYjIxxSR755MDmKVsaFQTE22ChNBcuuTWgkUDSubOk= 145 | github.com/onsi/gomega v1.33.1/go.mod h1:U4R44UsT+9eLIaYRB2a5qajjtQYn0hauxvRm16AVYg0= 146 | github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= 147 | github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= 148 | github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI= 149 | github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= 150 | github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= 151 | github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= 152 | github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= 153 | github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= 154 | github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= 155 | github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= 156 | github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= 157 | github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= 158 | github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= 159 | github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= 160 | github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ= 161 | github.com/sergi/go-diff v1.2.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= 162 | github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= 163 | github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= 164 | github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= 165 | github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= 166 | github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= 167 | github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= 168 | github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= 169 | github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= 170 | github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= 171 | github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= 172 | github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= 173 | github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= 174 | github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= 175 | github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= 176 | github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= 177 | github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= 178 | github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= 179 | github.com/xlab/treeprint v1.2.0 h1:HzHnuAF1plUN2zGlAFHbSQP2qJ0ZAD3XF5XD7OesXRQ= 180 | github.com/xlab/treeprint v1.2.0/go.mod h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd/WEJu0= 181 | github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= 182 | github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= 183 | go.starlark.net v0.0.0-20230525235612-a134d8f9ddca h1:VdD38733bfYv5tUZwEIskMM93VanwNIi5bIKnDrJdEY= 184 | go.starlark.net v0.0.0-20230525235612-a134d8f9ddca/go.mod h1:jxU+3+j+71eXOW14274+SmmuW82qJzl6iZSeqEtTGds= 185 | go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= 186 | go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= 187 | golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= 188 | golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= 189 | golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= 190 | golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= 191 | golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= 192 | golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= 193 | golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= 194 | golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= 195 | golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= 196 | golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= 197 | golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= 198 | golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= 199 | golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= 200 | golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= 201 | golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= 202 | golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= 203 | golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= 204 | golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= 205 | golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= 206 | golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= 207 | golang.org/x/oauth2 v0.21.0 h1:tsimM75w1tF/uws5rbeHzIWxEqElMehnc+iW793zsZs= 208 | golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= 209 | golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 210 | golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 211 | golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 212 | golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 213 | golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 214 | golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= 215 | golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= 216 | golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= 217 | golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= 218 | golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 219 | golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 220 | golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 221 | golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 222 | golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 223 | golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= 224 | golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= 225 | golang.org/x/term v0.0.0-20220526004731-065cf7ba2467/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= 226 | golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= 227 | golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= 228 | golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= 229 | golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= 230 | golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= 231 | golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= 232 | golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= 233 | golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= 234 | golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= 235 | golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= 236 | golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= 237 | golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= 238 | golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= 239 | golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= 240 | golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= 241 | golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= 242 | golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg= 243 | golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= 244 | golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= 245 | golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= 246 | golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= 247 | golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= 248 | google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= 249 | google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= 250 | google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= 251 | google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= 252 | google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= 253 | google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= 254 | google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= 255 | google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= 256 | google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= 257 | google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= 258 | google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= 259 | google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= 260 | google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= 261 | google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= 262 | google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= 263 | google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= 264 | google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= 265 | google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= 266 | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= 267 | gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= 268 | gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= 269 | gopkg.in/evanphx/json-patch.v4 v4.12.0 h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4= 270 | gopkg.in/evanphx/json-patch.v4 v4.12.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M= 271 | gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= 272 | gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= 273 | gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= 274 | gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= 275 | gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= 276 | gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= 277 | gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= 278 | gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= 279 | honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= 280 | honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= 281 | k8s.io/api v0.31.3 h1:umzm5o8lFbdN/hIXbrK9oRpOproJO62CV1zqxXrLgk8= 282 | k8s.io/api v0.31.3/go.mod h1:UJrkIp9pnMOI9K2nlL6vwpxRzzEX5sWgn8kGQe92kCE= 283 | k8s.io/apimachinery v0.31.3 h1:6l0WhcYgasZ/wk9ktLq5vLaoXJJr5ts6lkaQzgeYPq4= 284 | k8s.io/apimachinery v0.31.3/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= 285 | k8s.io/cli-runtime v0.31.3 h1:fEQD9Xokir78y7pVK/fCJN090/iYNrLHpFbGU4ul9TI= 286 | k8s.io/cli-runtime v0.31.3/go.mod h1:Q2jkyTpl+f6AtodQvgDI8io3jrfr+Z0LyQBPJJ2Btq8= 287 | k8s.io/client-go v0.31.3 h1:CAlZuM+PH2cm+86LOBemaJI/lQ5linJ6UFxKX/SoG+4= 288 | k8s.io/client-go v0.31.3/go.mod h1:2CgjPUTpv3fE5dNygAr2NcM8nhHzXvxB8KL5gYc3kJs= 289 | k8s.io/component-base v0.31.3 h1:DMCXXVx546Rfvhj+3cOm2EUxhS+EyztH423j+8sOwhQ= 290 | k8s.io/component-base v0.31.3/go.mod h1:xME6BHfUOafRgT0rGVBGl7TuSg8Z9/deT7qq6w7qjIU= 291 | k8s.io/component-helpers v0.31.3 h1:0zGPD2PrekhFWgmz85XxlMEl7dfhlKC1tERZDe3onQc= 292 | k8s.io/component-helpers v0.31.3/go.mod h1:HZ1HZx2TKXM7xSUV2cR9L5yDoyZPhhHQNaE3BPBLPUQ= 293 | k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= 294 | k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= 295 | k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 h1:BZqlfIlq5YbRMFko6/PM7FjZpUb45WallggurYhKGag= 296 | k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340/go.mod h1:yD4MZYeKMBwQKVht279WycxKyM84kkAx2DPrTXaeb98= 297 | k8s.io/kubectl v0.31.3 h1:3r111pCjPsvnR98oLLxDMwAeM6OPGmPty6gSKaLTQes= 298 | k8s.io/kubectl v0.31.3/go.mod h1:lhMECDCbJN8He12qcKqs2QfmVo9Pue30geovBVpH5fs= 299 | k8s.io/metrics v0.31.3 h1:DkT9I3gFlb2/z+/4BMY7WrQ/PnbukuV4Yli82v/KBCM= 300 | k8s.io/metrics v0.31.3/go.mod h1:2w9gpd8z+13oJmaPR6p3kDyrDqnxSyoKpnOw2qLIdhI= 301 | k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 h1:pUdcCO1Lk/tbT5ztQWOBi5HBgbBP1J8+AsQnQCKsi8A= 302 | k8s.io/utils v0.0.0-20240711033017-18e509b52bc8/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= 303 | sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= 304 | sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= 305 | sigs.k8s.io/kustomize/api v0.17.2 h1:E7/Fjk7V5fboiuijoZHgs4aHuexi5Y2loXlVOAVAG5g= 306 | sigs.k8s.io/kustomize/api v0.17.2/go.mod h1:UWTz9Ct+MvoeQsHcJ5e+vziRRkwimm3HytpZgIYqye0= 307 | sigs.k8s.io/kustomize/kustomize/v5 v5.4.2 h1:9Zl5Gqg3XMdBEvkR54pVLCBj7FVO7W+VPNDDEzD6AyE= 308 | sigs.k8s.io/kustomize/kustomize/v5 v5.4.2/go.mod h1:5ypfJVYlPb2MKKeoGknVLxvHemDlQT+szI4+KOhnD6k= 309 | sigs.k8s.io/kustomize/kyaml v0.17.1 h1:TnxYQxFXzbmNG6gOINgGWQt09GghzgTP6mIurOgrLCQ= 310 | sigs.k8s.io/kustomize/kyaml v0.17.1/go.mod h1:9V0mCjIEYjlXuCdYsSXvyoy2BTsLESH7TlGV81S282U= 311 | sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4= 312 | sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08= 313 | sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= 314 | sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= 315 | -------------------------------------------------------------------------------- /main.go: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2019 Philippe Martin. 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | package main 18 | 19 | import ( 20 | "flag" 21 | 22 | "github.com/feloy/kubectl-reference/generators" 23 | ) 24 | 25 | func main() { 26 | flag.Parse() 27 | generators.AsDocbook() 28 | } 29 | -------------------------------------------------------------------------------- /static/license.xml: -------------------------------------------------------------------------------- 1 | Apache 2 License 2 | 3 | Apache License 4 | Version 2.0, January 2004 5 | http://www.apache.org/licenses/ 6 | 7 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 8 | 9 | Definitions 10 | 11 | "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. 12 | 13 | "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. 16 | 17 | "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. 18 | 19 | "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. 20 | 21 | "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. 22 | 23 | "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). 24 | 25 | "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. 26 | 27 | "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." 28 | 29 | "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 30 | 31 | 32 | 33 | Grant of Copyright License 34 | 35 | Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 36 | 37 | 38 | 39 | Grant of Patent License 40 | 41 | Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 42 | 43 | 44 | 45 | Redistribution 46 | 47 | You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: 48 | 49 | 50 | 51 | You must give any other recipients of the Work or Derivative Works a copy of this License; and 52 | 53 | 54 | You must cause any modified files to carry prominent notices stating that You changed the files; and 55 | 56 | 57 | You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and 58 | 59 | 60 | If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. 61 | 62 | 63 | 64 | You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 65 | 66 | 67 | Submission of Contributions 68 | 69 | Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 70 | 71 | 72 | 73 | Trademarks 74 | 75 | This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 76 | 77 | 78 | 79 | Disclaimer of Warranty 80 | 81 | Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 82 | 83 | 84 | 85 | Limitation of Liability 86 | 87 | In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 88 | 89 | 90 | Accepting Warranty or Additional Liability 91 | 92 | While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. 93 | 94 | END OF TERMS AND CONDITIONS 95 | 96 | 97 | 98 | APPENDIX: How to apply the Apache License to your work. 99 | 100 | To apply the Apache License to your work, attach the following 101 | boilerplate notice, with the fields enclosed by brackets "[]" 102 | replaced with your own identifying information. (Don't include 103 | the brackets!) The text should be enclosed in the appropriate 104 | comment syntax for the file format. We also recommend that a 105 | file or class name and description of purpose be included on the 106 | same "printed page" as the copyright notice for easier 107 | identification within third-party archives. 108 | 109 | 110 | Copyright [yyyy] [name of copyright owner] 111 | 112 | Licensed under the Apache License, Version 2.0 (the "License"); 113 | you may not use this file except in compliance with the License. 114 | You may obtain a copy of the License at 115 | 116 | http://www.apache.org/licenses/LICENSE-2.0 117 | 118 | Unless required by applicable law or agreed to in writing, software 119 | distributed under the License is distributed on an "AS IS" BASIS, 120 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 121 | See the License for the specific language governing permissions and 122 | limitations under the License. 123 | 124 | 125 | -------------------------------------------------------------------------------- /upgrade/upgrade.go: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2019 Philippe Martin. 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | package upgrade 17 | 18 | import ( 19 | "flag" 20 | "fmt" 21 | "io/ioutil" 22 | "os" 23 | "path/filepath" 24 | 25 | "github.com/feloy/kubectl-reference/generators" 26 | "gopkg.in/yaml.v2" 27 | ) 28 | 29 | func getTocFile() string { 30 | return filepath.Join(*generators.GenKubectlDir, *generators.KubernetesVersion, "toc.yaml") 31 | } 32 | 33 | func Upgrade() { 34 | flag.Parse() 35 | 36 | toc := generators.ToC{} 37 | if len(getTocFile()) < 1 { 38 | fmt.Printf("Must specify --toc-file.\n") 39 | os.Exit(2) 40 | } 41 | 42 | contents, err := ioutil.ReadFile(getTocFile()) 43 | if err != nil { 44 | fmt.Printf("Failed to read yaml file %s: %v", getTocFile(), err) 45 | } 46 | 47 | err = yaml.Unmarshal(contents, &toc) 48 | if err != nil { 49 | fmt.Println(err) 50 | os.Exit(1) 51 | } 52 | 53 | spec := generators.GetSpec() 54 | 55 | toc.AddMissingCommands(&spec) 56 | toc.AddMissingOptions(&spec) 57 | toc.AddMissingUsages(&spec) 58 | 59 | bytes, _ := yaml.Marshal(toc) 60 | fmt.Print(string(bytes)) 61 | } 62 | -------------------------------------------------------------------------------- /xsl/api-6x9in.xsl: -------------------------------------------------------------------------------- 1 | 2 | 17 | 20 | 21 | 22 | 23 | 9in 24 | 6in 25 | 0.75in 26 | 0.50in 27 | 0.50in 28 | 0.50in 29 | 9 30 | 1pc 31 | 32 | 1 33 | 1 34 | 1 35 | 36 | book toc,title 37 | part title 38 | 39 | 40 | wrap 41 | 42 | yes 43 | 1 44 | 45 | 46 | 47 | 1.8em 48 | 2.0em 49 | 2.2em 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | chapter 61 | appendix 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 12pt 91 | right 92 | 93 | 94 | right 95 | 1in 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | part 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 12pt 129 | right 130 | 131 | 132 | right 133 | 134 | 135 | 136 | -------------------------------------------------------------------------------- /xsl/api.xsl: -------------------------------------------------------------------------------- 1 | 2 | 17 | 20 | 21 | 22 | A4 23 | 1 24 | 1 25 | 1 26 | 27 | book toc,title 28 | part title 29 | 30 | 31 | wrap 32 | 33 | yes 34 | 1 35 | 36 | --------------------------------------------------------------------------------