From bc9852fca4b5a0178c3d2a2c83c60ebf4d082271 Mon Sep 17 00:00:00 2001 From: Irfan Ur Rehman Date: Tue, 21 Mar 2017 15:46:05 +0530 Subject: [PATCH 1/3] [Federation][Kubefed] Support documentation for kubefed and its sub commands --- build/visible_to/BUILD | 1 + federation/cmd/genfeddocs/BUILD | 3 +++ federation/cmd/genfeddocs/gen_fed_docs.go | 7 +++++++ federation/cmd/kubefed/app/kubefed.go | 9 ++++++--- federation/pkg/kubefed/init/init.go | 4 ++-- federation/pkg/kubefed/join.go | 2 +- federation/pkg/kubefed/unjoin.go | 2 +- hack/lib/util.sh | 1 + 8 files changed, 22 insertions(+), 7 deletions(-) diff --git a/build/visible_to/BUILD b/build/visible_to/BUILD index 20c9aa142e0..0ac643d871e 100644 --- a/build/visible_to/BUILD +++ b/build/visible_to/BUILD @@ -58,6 +58,7 @@ package_group( package_group( name = "FEDERATION_BAD", packages = [ + "//federation/cmd/genfeddocs", "//federation/cmd/kubefed/app", "//federation/pkg/kubefed", "//federation/pkg/kubefed/init", diff --git a/federation/cmd/genfeddocs/BUILD b/federation/cmd/genfeddocs/BUILD index 2e65ba61c2d..4d97e1359c8 100644 --- a/federation/cmd/genfeddocs/BUILD +++ b/federation/cmd/genfeddocs/BUILD @@ -22,6 +22,9 @@ go_library( "//cmd/genutils:go_default_library", "//federation/cmd/federation-apiserver/app:go_default_library", "//federation/cmd/federation-controller-manager/app:go_default_library", + "//federation/cmd/kubefed/app:go_default_library", + "//federation/pkg/kubefed:go_default_library", + "//pkg/kubectl/cmd/util:go_default_library", "//vendor/github.com/spf13/cobra/doc:go_default_library", ], ) diff --git a/federation/cmd/genfeddocs/gen_fed_docs.go b/federation/cmd/genfeddocs/gen_fed_docs.go index 8910ea01eb7..237120837c9 100644 --- a/federation/cmd/genfeddocs/gen_fed_docs.go +++ b/federation/cmd/genfeddocs/gen_fed_docs.go @@ -24,6 +24,9 @@ import ( "k8s.io/kubernetes/cmd/genutils" fedapiservapp "k8s.io/kubernetes/federation/cmd/federation-apiserver/app" fedcmapp "k8s.io/kubernetes/federation/cmd/federation-controller-manager/app" + kubefedapp "k8s.io/kubernetes/federation/cmd/kubefed/app" + "k8s.io/kubernetes/federation/pkg/kubefed" + cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" ) // Note: We have a separate binary for generating federation docs and kube docs because of the way api groups are api.Registry. @@ -57,6 +60,10 @@ func main() { // generate docs for kube-controller-manager controllermanager := fedcmapp.NewControllerManagerCommand() doc.GenMarkdownTree(controllermanager, outDir) + case "kubefed": + // generate docs for kubefed + kubefed := kubefed.NewKubeFedCommand(cmdutil.NewFactory(nil), os.Stdin, os.Stdout, os.Stderr, kubefedapp.GetDefaultServerImage(), kubefedapp.DefaultEtcdImage) + doc.GenMarkdownTree(kubefed, outDir) default: fmt.Fprintf(os.Stderr, "Module %s is not supported", module) os.Exit(1) diff --git a/federation/cmd/kubefed/app/kubefed.go b/federation/cmd/kubefed/app/kubefed.go index ee9e0ad6320..a08d363fa50 100644 --- a/federation/cmd/kubefed/app/kubefed.go +++ b/federation/cmd/kubefed/app/kubefed.go @@ -30,14 +30,17 @@ import ( const ( hyperkubeImageName = "gcr.io/google_containers/hyperkube-amd64" - defaultEtcdImage = "gcr.io/google_containers/etcd:3.0.17" + DefaultEtcdImage = "gcr.io/google_containers/etcd:3.0.17" ) +func GetDefaultServerImage() string { + return fmt.Sprintf("%s:%s", hyperkubeImageName, version.Get()) +} + func Run() error { logs.InitLogs() defer logs.FlushLogs() - defaultServerImage := fmt.Sprintf("%s:%s", hyperkubeImageName, version.Get()) - cmd := kubefed.NewKubeFedCommand(cmdutil.NewFactory(nil), os.Stdin, os.Stdout, os.Stderr, defaultServerImage, defaultEtcdImage) + cmd := kubefed.NewKubeFedCommand(cmdutil.NewFactory(nil), os.Stdin, os.Stdout, os.Stderr, GetDefaultServerImage(), DefaultEtcdImage) return cmd.Execute() } diff --git a/federation/pkg/kubefed/init/init.go b/federation/pkg/kubefed/init/init.go index 13388216ef4..ad3ec06536f 100644 --- a/federation/pkg/kubefed/init/init.go +++ b/federation/pkg/kubefed/init/init.go @@ -96,7 +96,7 @@ const ( var ( init_long = templates.LongDesc(` - Initialize a federation control plane. + Init initializes a federation control plane. Federation control plane is hosted inside a Kubernetes cluster. The host cluster must be specified using the @@ -178,7 +178,7 @@ func NewCmdInit(cmdOut io.Writer, config util.AdminConfig, defaultServerImage, d cmd := &cobra.Command{ Use: "init FEDERATION_NAME --host-cluster-context=HOST_CONTEXT", - Short: "init initializes a federation control plane", + Short: "Initialize a federation control plane", Long: init_long, Example: init_example, Run: func(cmd *cobra.Command, args []string) { diff --git a/federation/pkg/kubefed/join.go b/federation/pkg/kubefed/join.go index 4fcc5e332a3..9c271e3f9ef 100644 --- a/federation/pkg/kubefed/join.go +++ b/federation/pkg/kubefed/join.go @@ -56,7 +56,7 @@ const ( var ( join_long = templates.LongDesc(` - Join a cluster to a federation. + Join adds a cluster to a federation. Current context is assumed to be a federation API server. Please use the --context flag otherwise.`) diff --git a/federation/pkg/kubefed/unjoin.go b/federation/pkg/kubefed/unjoin.go index 963908937c8..d7c65fb7537 100644 --- a/federation/pkg/kubefed/unjoin.go +++ b/federation/pkg/kubefed/unjoin.go @@ -72,7 +72,7 @@ func NewCmdUnjoin(f cmdutil.Factory, cmdOut, cmdErr io.Writer, config util.Admin cmd := &cobra.Command{ Use: "unjoin CLUSTER_NAME --host-cluster-context=HOST_CONTEXT", - Short: "Unjoins a cluster from a federation", + Short: "Unjoin a cluster from a federation", Long: unjoin_long, Example: unjoin_example, Run: func(cmd *cobra.Command, args []string) { diff --git a/hack/lib/util.sh b/hack/lib/util.sh index 50f6b55572a..dfd79d148dd 100755 --- a/hack/lib/util.sh +++ b/hack/lib/util.sh @@ -214,6 +214,7 @@ kube::util::gen-docs() { # to generate. The actual binary for running federation is hyperkube. "${genfeddocs}" "${dest}/docs/admin/" "federation-apiserver" "${genfeddocs}" "${dest}/docs/admin/" "federation-controller-manager" + "${genfeddocs}" "${dest}/docs/admin/" "kubefed" mkdir -p "${dest}/docs/man/man1/" "${genman}" "${dest}/docs/man/man1/" "kube-apiserver" From 5f69e169dc0baf12a05a2b890a44fae2e1cb5e77 Mon Sep 17 00:00:00 2001 From: Irfan Ur Rehman Date: Sat, 3 Jun 2017 17:14:41 +0530 Subject: [PATCH 2/3] [Federation][Kubefed] Add placeholders for generated docs --- docs/.generated_docs | 6 ++++++ docs/admin/kubefed.md | 3 +++ docs/admin/kubefed_init.md | 3 +++ docs/admin/kubefed_join.md | 3 +++ docs/admin/kubefed_options.md | 3 +++ docs/admin/kubefed_unjoin.md | 3 +++ docs/admin/kubefed_version.md | 3 +++ 7 files changed, 24 insertions(+) create mode 100644 docs/admin/kubefed.md create mode 100644 docs/admin/kubefed_init.md create mode 100644 docs/admin/kubefed_join.md create mode 100644 docs/admin/kubefed_options.md create mode 100644 docs/admin/kubefed_unjoin.md create mode 100644 docs/admin/kubefed_version.md diff --git a/docs/.generated_docs b/docs/.generated_docs index fd5cb22a437..a9afec72c31 100644 --- a/docs/.generated_docs +++ b/docs/.generated_docs @@ -5,6 +5,12 @@ docs/admin/kube-apiserver.md docs/admin/kube-controller-manager.md docs/admin/kube-proxy.md docs/admin/kube-scheduler.md +docs/admin/kubefed.md +docs/admin/kubefed_init.md +docs/admin/kubefed_join.md +docs/admin/kubefed_options.md +docs/admin/kubefed_unjoin.md +docs/admin/kubefed_version.md docs/admin/kubelet.md docs/man/man1/kube-apiserver.1 docs/man/man1/kube-controller-manager.1 diff --git a/docs/admin/kubefed.md b/docs/admin/kubefed.md new file mode 100644 index 00000000000..b6fd7a0f989 --- /dev/null +++ b/docs/admin/kubefed.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/docs/admin/kubefed_init.md b/docs/admin/kubefed_init.md new file mode 100644 index 00000000000..b6fd7a0f989 --- /dev/null +++ b/docs/admin/kubefed_init.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/docs/admin/kubefed_join.md b/docs/admin/kubefed_join.md new file mode 100644 index 00000000000..b6fd7a0f989 --- /dev/null +++ b/docs/admin/kubefed_join.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/docs/admin/kubefed_options.md b/docs/admin/kubefed_options.md new file mode 100644 index 00000000000..b6fd7a0f989 --- /dev/null +++ b/docs/admin/kubefed_options.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/docs/admin/kubefed_unjoin.md b/docs/admin/kubefed_unjoin.md new file mode 100644 index 00000000000..b6fd7a0f989 --- /dev/null +++ b/docs/admin/kubefed_unjoin.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/docs/admin/kubefed_version.md b/docs/admin/kubefed_version.md new file mode 100644 index 00000000000..b6fd7a0f989 --- /dev/null +++ b/docs/admin/kubefed_version.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. From e825ca53bd145e71c43fd2e7fc0c740c323f087b Mon Sep 17 00:00:00 2001 From: Irfan Ur Rehman Date: Sun, 25 Jun 2017 22:23:21 +0530 Subject: [PATCH 3/3] [Federation][Kubefed] Address review comment --- federation/pkg/kubefed/unjoin.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/federation/pkg/kubefed/unjoin.go b/federation/pkg/kubefed/unjoin.go index d7c65fb7537..2de4468086b 100644 --- a/federation/pkg/kubefed/unjoin.go +++ b/federation/pkg/kubefed/unjoin.go @@ -40,12 +40,12 @@ import ( var ( unjoin_long = templates.LongDesc(` - Unjoin removes a cluster from a federation. + Unjoin a cluster from a federation. Current context is assumed to be a federation endpoint. Please use the --context flag otherwise.`) unjoin_example = templates.Examples(` - # Unjoin removes the specified cluster from a federation. + # Unjoin the specified cluster from a federation. # Federation control plane's host cluster context name # must be specified via the --host-cluster-context flag # to properly cleanup the credentials.