1
0
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:
Luther Monson 2019-08-23 12:51:34 -07:00 committed by Craig Jellick
parent 16a1a5e250
commit 3d73507880
3 changed files with 64 additions and 24 deletions

View File

@ -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 == "" {

View File

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

View File

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