Adding a tool to generate federation docs

This commit is contained in:
nikhiljindal 2016-05-25 14:55:33 -07:00
parent 28a601571c
commit f98bda0b47
5 changed files with 70 additions and 6 deletions

View File

@ -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)
}
}

View File

@ -115,6 +115,7 @@ kube::golang::test_targets() {
cmd/genswaggertypedocs cmd/genswaggertypedocs
cmd/linkcheck cmd/linkcheck
examples/k8petstore/web-server/src examples/k8petstore/web-server/src
federation/cmd/genfeddocs
vendor/github.com/onsi/ginkgo/ginkgo vendor/github.com/onsi/ginkgo/ginkgo
test/e2e/e2e.test test/e2e/e2e.test
test/e2e_node/e2e_node.test test/e2e_node/e2e_node.test

View File

@ -187,6 +187,7 @@ kube::util::gen-docs() {
genman=$(kube::util::find-binary "genman") genman=$(kube::util::find-binary "genman")
genyaml=$(kube::util::find-binary "genyaml") genyaml=$(kube::util::find-binary "genyaml")
genbashcomp=$(kube::util::find-binary "genbashcomp") genbashcomp=$(kube::util::find-binary "genbashcomp")
genfeddocs=$(kube::util::find-binary "genfeddocs")
mkdir -p "${dest}/docs/user-guide/kubectl/" mkdir -p "${dest}/docs/user-guide/kubectl/"
"${gendocs}" "${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-proxy"
"${genkubedocs}" "${dest}/docs/admin/" "kube-scheduler" "${genkubedocs}" "${dest}/docs/admin/" "kube-scheduler"
"${genkubedocs}" "${dest}/docs/admin/" "kubelet" "${genkubedocs}" "${dest}/docs/admin/" "kubelet"
"${genfeddocs}" "${dest}/docs/admin/" "federation-apiserver"
"${genfeddocs}" "${dest}/docs/admin/" "federation-controller-manager"
mkdir -p "${dest}/docs/man/man1/" mkdir -p "${dest}/docs/man/man1/"
"${genman}" "${dest}/docs/man/man1/" "${genman}" "${dest}/docs/man/man1/"
mkdir -p "${dest}/docs/yaml/kubectl/" mkdir -p "${dest}/docs/yaml/kubectl/"

View File

@ -29,7 +29,8 @@ kube::golang::setup_env
cmd/genman \ cmd/genman \
cmd/genyaml \ cmd/genyaml \
cmd/genbashcomp \ cmd/genbashcomp \
cmd/mungedocs cmd/mungedocs \
federation/cmd/genfeddocs
kube::util::ensure-temp-dir kube::util::ensure-temp-dir

View File

@ -32,11 +32,6 @@ kube::golang::setup_env
cmd/mungedocs cmd/mungedocs
# Find binary # 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") mungedocs=$(kube::util::find-binary "mungedocs")
DOCROOT="${KUBE_ROOT}/docs/" DOCROOT="${KUBE_ROOT}/docs/"