1. Remove ks-iam standalone binary, move it to ks-apiserver 2. Generate all devops apis inside kubesphere repository, no need to import s2ioperator. 3. Reorganize ldap code, make it more flexible to use.
73 lines
1.7 KiB
Go
73 lines
1.7 KiB
Go
package main
|
|
|
|
import (
|
|
goflag "flag"
|
|
cliflag "k8s.io/component-base/cli/flag"
|
|
"path/filepath"
|
|
|
|
"github.com/spf13/cobra"
|
|
"github.com/spf13/pflag"
|
|
controllermanager "kubesphere.io/kubesphere/cmd/controller-manager/app"
|
|
ksapigateway "kubesphere.io/kubesphere/cmd/ks-apigateway/app"
|
|
ksapiserver "kubesphere.io/kubesphere/cmd/ks-apiserver/app"
|
|
"os"
|
|
)
|
|
|
|
func main() {
|
|
hypersphereCommand, allCommandFns := NewHyperSphereCommand()
|
|
|
|
pflag.CommandLine.SetNormalizeFunc(cliflag.WordSepNormalizeFunc)
|
|
pflag.CommandLine.AddGoFlagSet(goflag.CommandLine)
|
|
|
|
basename := filepath.Base(os.Args[0])
|
|
if err := commandFor(basename, hypersphereCommand, allCommandFns).Execute(); err != nil {
|
|
os.Exit(1)
|
|
}
|
|
}
|
|
|
|
func commandFor(basename string, defaultCommand *cobra.Command, commands []func() *cobra.Command) *cobra.Command {
|
|
for _, commandFn := range commands {
|
|
command := commandFn()
|
|
if command.Name() == basename {
|
|
return command
|
|
}
|
|
|
|
for _, alias := range command.Aliases {
|
|
if alias == basename {
|
|
return command
|
|
}
|
|
}
|
|
}
|
|
|
|
return defaultCommand
|
|
}
|
|
|
|
func NewHyperSphereCommand() (*cobra.Command, []func() *cobra.Command) {
|
|
apiserver := func() *cobra.Command { return ksapiserver.NewAPIServerCommand() }
|
|
controllermanager := func() *cobra.Command { return controllermanager.NewControllerManagerCommand() }
|
|
apigateway := func() *cobra.Command { return ksapigateway.NewAPIGatewayCommand() }
|
|
|
|
commandFns := []func() *cobra.Command{
|
|
apiserver,
|
|
controllermanager,
|
|
apigateway,
|
|
}
|
|
|
|
cmd := &cobra.Command{
|
|
Use: "hypersphere",
|
|
Short: "Request a new project",
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
if len(args) != 0 {
|
|
cmd.Help()
|
|
os.Exit(0)
|
|
}
|
|
},
|
|
}
|
|
|
|
for i := range commandFns {
|
|
cmd.AddCommand(commandFns[i]())
|
|
}
|
|
|
|
return cmd, commandFns
|
|
}
|