mirror of
https://github.com/rancher/rke.git
synced 2025-05-09 16:56:57 +00:00
added rke --quiet and config --list-version, linting refactor
This commit is contained in:
parent
16a1a5e250
commit
3d73507880
@ -45,12 +45,16 @@ func ConfigCommand() cli.Command {
|
||||
Usage: "Print configuration",
|
||||
},
|
||||
cli.BoolFlag{
|
||||
Name: "system-images",
|
||||
Name: "system-images,s",
|
||||
Usage: "Generate the default system images",
|
||||
},
|
||||
cli.BoolFlag{
|
||||
Name: "all",
|
||||
Usage: "Generate the default system images for all versions",
|
||||
Name: "list-version,l",
|
||||
Usage: "List the default kubernetes version",
|
||||
},
|
||||
cli.BoolFlag{
|
||||
Name: "all,a",
|
||||
Usage: "Used with -s and -l, get all available versions",
|
||||
},
|
||||
cli.StringFlag{
|
||||
Name: "version",
|
||||
@ -98,28 +102,41 @@ func writeConfig(cluster *v3.RancherKubernetesEngineConfig, configFile string, p
|
||||
func clusterConfig(ctx *cli.Context) error {
|
||||
if ctx.Bool("system-images") {
|
||||
if metadata.K8sVersionToRKESystemImages == nil {
|
||||
metadata.InitMetadata(context.Background())
|
||||
err := metadata.InitMetadata(context.Background())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return generateSystemImagesList(ctx.String("version"), ctx.Bool("all"))
|
||||
}
|
||||
configFile := ctx.String("name")
|
||||
print := ctx.Bool("print")
|
||||
cluster := v3.RancherKubernetesEngineConfig{}
|
||||
|
||||
// Get cluster config from user
|
||||
if ctx.Bool("list-version") {
|
||||
if metadata.K8sVersionToRKESystemImages == nil {
|
||||
err := metadata.InitMetadata(context.Background())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return generateK8sVersionList(ctx.Bool("all"))
|
||||
}
|
||||
|
||||
configFile := ctx.String("name")
|
||||
engineConfig := v3.RancherKubernetesEngineConfig{}
|
||||
|
||||
// Get engineConfig config from user
|
||||
reader := bufio.NewReader(os.Stdin)
|
||||
|
||||
// Generate empty configuration file
|
||||
if ctx.Bool("empty") {
|
||||
cluster.Nodes = make([]v3.RKEConfigNode, 1)
|
||||
return writeConfig(&cluster, configFile, print)
|
||||
engineConfig.Nodes = make([]v3.RKEConfigNode, 1)
|
||||
return writeConfig(&engineConfig, configFile, ctx.Bool("print"))
|
||||
}
|
||||
|
||||
sshKeyPath, err := getConfig(reader, "Cluster Level SSH Private Key Path", "~/.ssh/id_rsa")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
cluster.SSHKeyPath = sshKeyPath
|
||||
engineConfig.SSHKeyPath = sshKeyPath
|
||||
|
||||
// Get number of hosts
|
||||
numberOfHostsString, err := getConfig(reader, "Number of Hosts", "1")
|
||||
@ -132,13 +149,13 @@ func clusterConfig(ctx *cli.Context) error {
|
||||
}
|
||||
|
||||
// Get Hosts config
|
||||
cluster.Nodes = make([]v3.RKEConfigNode, 0)
|
||||
engineConfig.Nodes = make([]v3.RKEConfigNode, 0)
|
||||
for i := 0; i < numberOfHostsInt; i++ {
|
||||
hostCfg, err := getHostConfig(reader, i, cluster.SSHKeyPath)
|
||||
hostCfg, err := getHostConfig(reader, i, engineConfig.SSHKeyPath)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
cluster.Nodes = append(cluster.Nodes, *hostCfg)
|
||||
engineConfig.Nodes = append(engineConfig.Nodes, *hostCfg)
|
||||
}
|
||||
|
||||
// Get Network config
|
||||
@ -146,35 +163,35 @@ func clusterConfig(ctx *cli.Context) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
cluster.Network = *networkConfig
|
||||
engineConfig.Network = *networkConfig
|
||||
|
||||
// Get Authentication Config
|
||||
authnConfig, err := getAuthnConfig(reader)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
cluster.Authentication = *authnConfig
|
||||
engineConfig.Authentication = *authnConfig
|
||||
|
||||
// Get Authorization config
|
||||
authzConfig, err := getAuthzConfig(reader)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
cluster.Authorization = *authzConfig
|
||||
engineConfig.Authorization = *authzConfig
|
||||
|
||||
// Get k8s/system images
|
||||
systemImages, err := getSystemImagesConfig(reader)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
cluster.SystemImages = *systemImages
|
||||
engineConfig.SystemImages = *systemImages
|
||||
|
||||
// Get Services Config
|
||||
serviceConfig, err := getServiceConfig(reader)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
cluster.Services = *serviceConfig
|
||||
engineConfig.Services = *serviceConfig
|
||||
|
||||
//Get addon manifests
|
||||
addonsInclude, err := getAddonManifests(reader)
|
||||
@ -183,10 +200,10 @@ func clusterConfig(ctx *cli.Context) error {
|
||||
}
|
||||
|
||||
if len(addonsInclude) > 0 {
|
||||
cluster.AddonsInclude = append(cluster.AddonsInclude, addonsInclude...)
|
||||
engineConfig.AddonsInclude = append(engineConfig.AddonsInclude, addonsInclude...)
|
||||
}
|
||||
|
||||
return writeConfig(&cluster, configFile, print)
|
||||
return writeConfig(&engineConfig, configFile, ctx.Bool("print"))
|
||||
}
|
||||
|
||||
func getHostConfig(reader *bufio.Reader, index int, clusterSSHKeyPath string) (*v3.RKEConfigNode, error) {
|
||||
@ -405,6 +422,21 @@ func getAddonManifests(reader *bufio.Reader) ([]string, error) {
|
||||
return addonSlice, nil
|
||||
}
|
||||
|
||||
func generateK8sVersionList(all bool) error {
|
||||
if !all {
|
||||
fmt.Println(metadata.DefaultK8sVersion)
|
||||
return nil
|
||||
}
|
||||
|
||||
for _, version := range metadata.K8sVersionsCurrent {
|
||||
if _, ok := metadata.K8sBadVersions[version]; !ok {
|
||||
fmt.Println(version)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func generateSystemImagesList(version string, all bool) error {
|
||||
allVersions := []string{}
|
||||
currentVersionImages := make(map[string]v3.RKESystemImages)
|
||||
@ -416,7 +448,7 @@ func generateSystemImagesList(version string, all bool) error {
|
||||
}
|
||||
if all {
|
||||
for version, rkeSystemImages := range currentVersionImages {
|
||||
logrus.Debugf("Generating images list for version [%s]:", version)
|
||||
logrus.Infof("Generating images list for version [%s]:", version)
|
||||
uniqueImages := getUniqueSystemImageList(rkeSystemImages)
|
||||
for _, image := range uniqueImages {
|
||||
if image == "" {
|
||||
@ -437,7 +469,7 @@ func generateSystemImagesList(version string, all bool) error {
|
||||
if rkeSystemImages == (v3.RKESystemImages{}) {
|
||||
return fmt.Errorf("k8s version is not supported, supported versions are: %v", allVersions)
|
||||
}
|
||||
logrus.Debugf("Generating images list for version [%s]:", version)
|
||||
logrus.Infof("Generating images list for version [%s]:", version)
|
||||
uniqueImages := getUniqueSystemImageList(rkeSystemImages)
|
||||
for _, image := range uniqueImages {
|
||||
if image == "" {
|
||||
|
8
main.go
8
main.go
@ -2,6 +2,7 @@ package main
|
||||
|
||||
import (
|
||||
"github.com/rancher/rke/metadata"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"regexp"
|
||||
"strings"
|
||||
@ -35,6 +36,9 @@ func mainErr() error {
|
||||
if ctx.GlobalBool("debug") {
|
||||
logrus.SetLevel(logrus.DebugLevel)
|
||||
}
|
||||
if ctx.GlobalBool("quiet") {
|
||||
logrus.SetOutput(ioutil.Discard)
|
||||
}
|
||||
if released.MatchString(app.Version) {
|
||||
metadata.RKEVersion = app.Version
|
||||
return nil
|
||||
@ -74,6 +78,10 @@ func mainErr() error {
|
||||
Name: "debug,d",
|
||||
Usage: "Debug logging",
|
||||
},
|
||||
cli.BoolFlag{
|
||||
Name: "quiet,q",
|
||||
Usage: "Quiet mode, disables logging and only critical output will be printed",
|
||||
},
|
||||
}
|
||||
return app.Run(os.Args)
|
||||
}
|
||||
|
@ -24,7 +24,7 @@ cd $(dirname $0)/..
|
||||
|
||||
|
||||
# Get latest version from rke
|
||||
all_versions=$(./bin/rke --debug config --all --system-images 2>&1 | grep "Generating images list for version" | sed -E 's/.*\[(.*)\].*/\1/' | sort -V)
|
||||
all_versions=$(./bin/rke --quiet config --all --list-version | sort -V)
|
||||
|
||||
# Get the latest of the major.minor versions.
|
||||
for ver in $all_versions; do
|
||||
|
Loading…
Reference in New Issue
Block a user