diff --git a/federation/cmd/genfeddocs/gen_fed_docs.go b/federation/cmd/genfeddocs/gen_fed_docs.go new file mode 100644 index 00000000000..d7c30b14c5a --- /dev/null +++ b/federation/cmd/genfeddocs/gen_fed_docs.go @@ -0,0 +1,64 @@ +/* +Copyright 2016 The Kubernetes Authors All rights reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package main + +import ( + "fmt" + "os" + + "github.com/spf13/cobra/doc" + "k8s.io/kubernetes/cmd/genutils" + fedapiservapp "k8s.io/kubernetes/federation/cmd/federation-apiserver/app" + fedcmapp "k8s.io/kubernetes/federation/cmd/federation-controller-manager/app" +) + +// Note: We have a separate binary for generating federation docs and kube docs because of the way api groups are registered. +// If we import both kube-apiserver and federation-apiserver in the same binary then api groups from both kube and federation will get registered in both the apiservers +// and hence will produce incorrect flag values. +// We can potentially merge cmd/kubegendocs and this when we have fixed that problem. +func main() { + // use os.Args instead of "flags" because "flags" will mess up the man pages! + path := "" + module := "" + if len(os.Args) == 3 { + path = os.Args[1] + module = os.Args[2] + } else { + fmt.Fprintf(os.Stderr, "usage: %s [output directory] [module] \n", os.Args[0]) + os.Exit(1) + } + + outDir, err := genutils.OutDir(path) + if err != nil { + fmt.Fprintf(os.Stderr, "failed to get output directory: %v\n", err) + os.Exit(1) + } + + switch module { + case "federation-apiserver": + // generate docs for federated-apiserver + apiserver := fedapiservapp.NewAPIServerCommand() + doc.GenMarkdownTree(apiserver, outDir) + case "federation-controller-manager": + // generate docs for kube-controller-manager + controllermanager := fedcmapp.NewControllerManagerCommand() + doc.GenMarkdownTree(controllermanager, outDir) + default: + fmt.Fprintf(os.Stderr, "Module %s is not supported", module) + os.Exit(1) + } +} diff --git a/hack/lib/golang.sh b/hack/lib/golang.sh index 0ff6e972b20..71978aac2a5 100755 --- a/hack/lib/golang.sh +++ b/hack/lib/golang.sh @@ -115,6 +115,7 @@ kube::golang::test_targets() { cmd/genswaggertypedocs cmd/linkcheck examples/k8petstore/web-server/src + federation/cmd/genfeddocs vendor/github.com/onsi/ginkgo/ginkgo test/e2e/e2e.test test/e2e_node/e2e_node.test diff --git a/hack/lib/util.sh b/hack/lib/util.sh index 9f577dd99e6..108c77bf3e9 100755 --- a/hack/lib/util.sh +++ b/hack/lib/util.sh @@ -187,6 +187,7 @@ kube::util::gen-docs() { genman=$(kube::util::find-binary "genman") genyaml=$(kube::util::find-binary "genyaml") genbashcomp=$(kube::util::find-binary "genbashcomp") + genfeddocs=$(kube::util::find-binary "genfeddocs") mkdir -p "${dest}/docs/user-guide/kubectl/" "${gendocs}" "${dest}/docs/user-guide/kubectl/" @@ -196,6 +197,8 @@ kube::util::gen-docs() { "${genkubedocs}" "${dest}/docs/admin/" "kube-proxy" "${genkubedocs}" "${dest}/docs/admin/" "kube-scheduler" "${genkubedocs}" "${dest}/docs/admin/" "kubelet" + "${genfeddocs}" "${dest}/docs/admin/" "federation-apiserver" + "${genfeddocs}" "${dest}/docs/admin/" "federation-controller-manager" mkdir -p "${dest}/docs/man/man1/" "${genman}" "${dest}/docs/man/man1/" mkdir -p "${dest}/docs/yaml/kubectl/" diff --git a/hack/update-generated-docs.sh b/hack/update-generated-docs.sh index ddcbbb0cf2c..1cad9eb0ccd 100755 --- a/hack/update-generated-docs.sh +++ b/hack/update-generated-docs.sh @@ -29,7 +29,8 @@ kube::golang::setup_env cmd/genman \ cmd/genyaml \ cmd/genbashcomp \ - cmd/mungedocs + cmd/mungedocs \ + federation/cmd/genfeddocs kube::util::ensure-temp-dir diff --git a/hack/verify-generated-docs.sh b/hack/verify-generated-docs.sh index a39d39a2af0..58a93d308f3 100755 --- a/hack/verify-generated-docs.sh +++ b/hack/verify-generated-docs.sh @@ -32,11 +32,6 @@ kube::golang::setup_env cmd/mungedocs # Find binary -gendocs=$(kube::util::find-binary "gendocs") -genkubedocs=$(kube::util::find-binary "genkubedocs") -genman=$(kube::util::find-binary "genman") -genyaml=$(kube::util::find-binary "genyaml") -genbashcomp=$(kube::util::find-binary "genbashcomp") mungedocs=$(kube::util::find-binary "mungedocs") DOCROOT="${KUBE_ROOT}/docs/"