mirror of
https://github.com/rancher/rke.git
synced 2025-06-23 22:17:11 +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",
|
Usage: "Print configuration",
|
||||||
},
|
},
|
||||||
cli.BoolFlag{
|
cli.BoolFlag{
|
||||||
Name: "system-images",
|
Name: "system-images,s",
|
||||||
Usage: "Generate the default system images",
|
Usage: "Generate the default system images",
|
||||||
},
|
},
|
||||||
cli.BoolFlag{
|
cli.BoolFlag{
|
||||||
Name: "all",
|
Name: "list-version,l",
|
||||||
Usage: "Generate the default system images for all versions",
|
Usage: "List the default kubernetes version",
|
||||||
|
},
|
||||||
|
cli.BoolFlag{
|
||||||
|
Name: "all,a",
|
||||||
|
Usage: "Used with -s and -l, get all available versions",
|
||||||
},
|
},
|
||||||
cli.StringFlag{
|
cli.StringFlag{
|
||||||
Name: "version",
|
Name: "version",
|
||||||
@ -98,28 +102,41 @@ func writeConfig(cluster *v3.RancherKubernetesEngineConfig, configFile string, p
|
|||||||
func clusterConfig(ctx *cli.Context) error {
|
func clusterConfig(ctx *cli.Context) error {
|
||||||
if ctx.Bool("system-images") {
|
if ctx.Bool("system-images") {
|
||||||
if metadata.K8sVersionToRKESystemImages == nil {
|
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"))
|
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)
|
reader := bufio.NewReader(os.Stdin)
|
||||||
|
|
||||||
// Generate empty configuration file
|
// Generate empty configuration file
|
||||||
if ctx.Bool("empty") {
|
if ctx.Bool("empty") {
|
||||||
cluster.Nodes = make([]v3.RKEConfigNode, 1)
|
engineConfig.Nodes = make([]v3.RKEConfigNode, 1)
|
||||||
return writeConfig(&cluster, configFile, print)
|
return writeConfig(&engineConfig, configFile, ctx.Bool("print"))
|
||||||
}
|
}
|
||||||
|
|
||||||
sshKeyPath, err := getConfig(reader, "Cluster Level SSH Private Key Path", "~/.ssh/id_rsa")
|
sshKeyPath, err := getConfig(reader, "Cluster Level SSH Private Key Path", "~/.ssh/id_rsa")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
cluster.SSHKeyPath = sshKeyPath
|
engineConfig.SSHKeyPath = sshKeyPath
|
||||||
|
|
||||||
// Get number of hosts
|
// Get number of hosts
|
||||||
numberOfHostsString, err := getConfig(reader, "Number of Hosts", "1")
|
numberOfHostsString, err := getConfig(reader, "Number of Hosts", "1")
|
||||||
@ -132,13 +149,13 @@ func clusterConfig(ctx *cli.Context) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Get Hosts config
|
// Get Hosts config
|
||||||
cluster.Nodes = make([]v3.RKEConfigNode, 0)
|
engineConfig.Nodes = make([]v3.RKEConfigNode, 0)
|
||||||
for i := 0; i < numberOfHostsInt; i++ {
|
for i := 0; i < numberOfHostsInt; i++ {
|
||||||
hostCfg, err := getHostConfig(reader, i, cluster.SSHKeyPath)
|
hostCfg, err := getHostConfig(reader, i, engineConfig.SSHKeyPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
cluster.Nodes = append(cluster.Nodes, *hostCfg)
|
engineConfig.Nodes = append(engineConfig.Nodes, *hostCfg)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get Network config
|
// Get Network config
|
||||||
@ -146,35 +163,35 @@ func clusterConfig(ctx *cli.Context) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
cluster.Network = *networkConfig
|
engineConfig.Network = *networkConfig
|
||||||
|
|
||||||
// Get Authentication Config
|
// Get Authentication Config
|
||||||
authnConfig, err := getAuthnConfig(reader)
|
authnConfig, err := getAuthnConfig(reader)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
cluster.Authentication = *authnConfig
|
engineConfig.Authentication = *authnConfig
|
||||||
|
|
||||||
// Get Authorization config
|
// Get Authorization config
|
||||||
authzConfig, err := getAuthzConfig(reader)
|
authzConfig, err := getAuthzConfig(reader)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
cluster.Authorization = *authzConfig
|
engineConfig.Authorization = *authzConfig
|
||||||
|
|
||||||
// Get k8s/system images
|
// Get k8s/system images
|
||||||
systemImages, err := getSystemImagesConfig(reader)
|
systemImages, err := getSystemImagesConfig(reader)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
cluster.SystemImages = *systemImages
|
engineConfig.SystemImages = *systemImages
|
||||||
|
|
||||||
// Get Services Config
|
// Get Services Config
|
||||||
serviceConfig, err := getServiceConfig(reader)
|
serviceConfig, err := getServiceConfig(reader)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
cluster.Services = *serviceConfig
|
engineConfig.Services = *serviceConfig
|
||||||
|
|
||||||
//Get addon manifests
|
//Get addon manifests
|
||||||
addonsInclude, err := getAddonManifests(reader)
|
addonsInclude, err := getAddonManifests(reader)
|
||||||
@ -183,10 +200,10 @@ func clusterConfig(ctx *cli.Context) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if len(addonsInclude) > 0 {
|
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) {
|
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
|
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 {
|
func generateSystemImagesList(version string, all bool) error {
|
||||||
allVersions := []string{}
|
allVersions := []string{}
|
||||||
currentVersionImages := make(map[string]v3.RKESystemImages)
|
currentVersionImages := make(map[string]v3.RKESystemImages)
|
||||||
@ -416,7 +448,7 @@ func generateSystemImagesList(version string, all bool) error {
|
|||||||
}
|
}
|
||||||
if all {
|
if all {
|
||||||
for version, rkeSystemImages := range currentVersionImages {
|
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)
|
uniqueImages := getUniqueSystemImageList(rkeSystemImages)
|
||||||
for _, image := range uniqueImages {
|
for _, image := range uniqueImages {
|
||||||
if image == "" {
|
if image == "" {
|
||||||
@ -437,7 +469,7 @@ func generateSystemImagesList(version string, all bool) error {
|
|||||||
if rkeSystemImages == (v3.RKESystemImages{}) {
|
if rkeSystemImages == (v3.RKESystemImages{}) {
|
||||||
return fmt.Errorf("k8s version is not supported, supported versions are: %v", allVersions)
|
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)
|
uniqueImages := getUniqueSystemImageList(rkeSystemImages)
|
||||||
for _, image := range uniqueImages {
|
for _, image := range uniqueImages {
|
||||||
if image == "" {
|
if image == "" {
|
||||||
|
8
main.go
8
main.go
@ -2,6 +2,7 @@ package main
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/rancher/rke/metadata"
|
"github.com/rancher/rke/metadata"
|
||||||
|
"io/ioutil"
|
||||||
"os"
|
"os"
|
||||||
"regexp"
|
"regexp"
|
||||||
"strings"
|
"strings"
|
||||||
@ -35,6 +36,9 @@ func mainErr() error {
|
|||||||
if ctx.GlobalBool("debug") {
|
if ctx.GlobalBool("debug") {
|
||||||
logrus.SetLevel(logrus.DebugLevel)
|
logrus.SetLevel(logrus.DebugLevel)
|
||||||
}
|
}
|
||||||
|
if ctx.GlobalBool("quiet") {
|
||||||
|
logrus.SetOutput(ioutil.Discard)
|
||||||
|
}
|
||||||
if released.MatchString(app.Version) {
|
if released.MatchString(app.Version) {
|
||||||
metadata.RKEVersion = app.Version
|
metadata.RKEVersion = app.Version
|
||||||
return nil
|
return nil
|
||||||
@ -74,6 +78,10 @@ func mainErr() error {
|
|||||||
Name: "debug,d",
|
Name: "debug,d",
|
||||||
Usage: "Debug logging",
|
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)
|
return app.Run(os.Args)
|
||||||
}
|
}
|
||||||
|
@ -24,7 +24,7 @@ cd $(dirname $0)/..
|
|||||||
|
|
||||||
|
|
||||||
# Get latest version from rke
|
# 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.
|
# Get the latest of the major.minor versions.
|
||||||
for ver in $all_versions; do
|
for ver in $all_versions; do
|
||||||
|
Loading…
Reference in New Issue
Block a user