move unwanted console output out of versiongetter.

This commit is contained in:
Jianfei Bai 2019-12-08 10:26:27 +08:00
parent 7d13dfe3c3
commit dfb6c3424f
4 changed files with 18 additions and 13 deletions

View File

@ -157,7 +157,7 @@ func enforceRequirements(flags *applyPlanFlags, dryRun bool, newK8sVersion strin
} }
// Use a real version getter interface that queries the API server, the kubeadm client and the Kubernetes CI system for latest versions // Use a real version getter interface that queries the API server, the kubeadm client and the Kubernetes CI system for latest versions
return client, upgrade.NewOfflineVersionGetter(upgrade.NewKubeVersionGetter(client, os.Stdout), newK8sVersion), cfg, nil return client, upgrade.NewOfflineVersionGetter(upgrade.NewKubeVersionGetter(client), newK8sVersion), cfg, nil
} }
// printConfiguration prints the external version of the API to yaml // printConfiguration prints the external version of the API to yaml

View File

@ -85,12 +85,14 @@ func GetAvailableUpgrades(versionGetterImpl VersionGetter, experimentalUpgradesA
if err != nil { if err != nil {
return upgrades, err return upgrades, err
} }
fmt.Printf("[upgrade/versions] Cluster version: %s\n", clusterVersionStr)
// Get current kubeadm CLI version // Get current kubeadm CLI version
kubeadmVersionStr, kubeadmVersion, err := versionGetterImpl.KubeadmVersion() kubeadmVersionStr, kubeadmVersion, err := versionGetterImpl.KubeadmVersion()
if err != nil { if err != nil {
return upgrades, err return upgrades, err
} }
fmt.Printf("[upgrade/versions] kubeadm version: %s\n", kubeadmVersionStr)
// Get and output the current latest stable version // Get and output the current latest stable version
stableVersionStr, stableVersion, err := versionGetterImpl.VersionFromCILabel("stable", "stable version") stableVersionStr, stableVersion, err := versionGetterImpl.VersionFromCILabel("stable", "stable version")
@ -98,6 +100,8 @@ func GetAvailableUpgrades(versionGetterImpl VersionGetter, experimentalUpgradesA
fmt.Printf("[upgrade/versions] WARNING: %v\n", err) fmt.Printf("[upgrade/versions] WARNING: %v\n", err)
fmt.Println("[upgrade/versions] WARNING: Falling back to current kubeadm version as latest stable version") fmt.Println("[upgrade/versions] WARNING: Falling back to current kubeadm version as latest stable version")
stableVersionStr, stableVersion = kubeadmVersionStr, kubeadmVersion stableVersionStr, stableVersion = kubeadmVersionStr, kubeadmVersion
} else {
fmt.Printf("[upgrade/versions] Latest %s: %s\n", "stable version", stableVersionStr)
} }
// Get the kubelet versions in the cluster // Get the kubelet versions in the cluster
@ -144,6 +148,8 @@ func GetAvailableUpgrades(versionGetterImpl VersionGetter, experimentalUpgradesA
if err != nil { if err != nil {
fmt.Printf("[upgrade/versions] WARNING: %v\n", err) fmt.Printf("[upgrade/versions] WARNING: %v\n", err)
} else { } else {
fmt.Printf("[upgrade/versions] Latest %s: %s\n", description, patchVersionStr)
// Check if a minor version upgrade is possible when a patch release exists // Check if a minor version upgrade is possible when a patch release exists
// It's only possible if the latest patch version is higher than the current patch version // It's only possible if the latest patch version is higher than the current patch version
// If that's the case, they must be on different branches => a newer minor version can be upgraded to // If that's the case, they must be on different branches => a newer minor version can be upgraded to
@ -211,6 +217,7 @@ func GetAvailableUpgrades(versionGetterImpl VersionGetter, experimentalUpgradesA
if err != nil { if err != nil {
return upgrades, err return upgrades, err
} }
fmt.Printf("[upgrade/versions] Latest %s: %s\n", "experimental version", latestVersionStr)
minorUnstable := latestVersion.Components()[1] minorUnstable := latestVersion.Components()[1]
// Get and output the current latest unstable version // Get and output the current latest unstable version
@ -219,6 +226,7 @@ func GetAvailableUpgrades(versionGetterImpl VersionGetter, experimentalUpgradesA
if err != nil { if err != nil {
return upgrades, err return upgrades, err
} }
fmt.Printf("[upgrade/versions] Latest %s: %s\n", "", previousBranchLatestVersionStr)
// If that previous latest version is an RC, RCs are allowed and the cluster version is lower than the RC version, show the upgrade // If that previous latest version is an RC, RCs are allowed and the cluster version is lower than the RC version, show the upgrade
if rcUpgradesAllowed && rcUpgradePossible(clusterVersion, previousBranchLatestVersion) { if rcUpgradesAllowed && rcUpgradePossible(clusterVersion, previousBranchLatestVersion) {

View File

@ -17,6 +17,7 @@ limitations under the License.
package upgrade package upgrade
import ( import (
"fmt"
"strings" "strings"
"github.com/pkg/errors" "github.com/pkg/errors"
@ -56,6 +57,7 @@ func EnforceVersionPolicies(versionGetter VersionGetter, newK8sVersionStr string
skewErrors.Mandatory = append(skewErrors.Mandatory, errors.Wrap(err, "Unable to fetch cluster version")) skewErrors.Mandatory = append(skewErrors.Mandatory, errors.Wrap(err, "Unable to fetch cluster version"))
return skewErrors return skewErrors
} }
fmt.Printf("[upgrade/versions] Cluster version: %s\n", clusterVersionStr)
kubeadmVersionStr, kubeadmVersion, err := versionGetter.KubeadmVersion() kubeadmVersionStr, kubeadmVersion, err := versionGetter.KubeadmVersion()
if err != nil { if err != nil {
@ -63,6 +65,7 @@ func EnforceVersionPolicies(versionGetter VersionGetter, newK8sVersionStr string
skewErrors.Mandatory = append(skewErrors.Mandatory, errors.Wrap(err, "Unable to fetch kubeadm version")) skewErrors.Mandatory = append(skewErrors.Mandatory, errors.Wrap(err, "Unable to fetch kubeadm version"))
return skewErrors return skewErrors
} }
fmt.Printf("[upgrade/versions] kubeadm version: %s\n", kubeadmVersionStr)
kubeletVersions, err := versionGetter.KubeletVersions() kubeletVersions, err := versionGetter.KubeletVersions()
if err != nil { if err != nil {

View File

@ -18,8 +18,6 @@ package upgrade
import ( import (
"fmt" "fmt"
"io"
"github.com/pkg/errors" "github.com/pkg/errors"
"k8s.io/api/core/v1" "k8s.io/api/core/v1"
@ -46,14 +44,12 @@ type VersionGetter interface {
// KubeVersionGetter handles the version-fetching mechanism from external sources // KubeVersionGetter handles the version-fetching mechanism from external sources
type KubeVersionGetter struct { type KubeVersionGetter struct {
client clientset.Interface client clientset.Interface
w io.Writer
} }
// NewKubeVersionGetter returns a new instance of KubeVersionGetter // NewKubeVersionGetter returns a new instance of KubeVersionGetter
func NewKubeVersionGetter(client clientset.Interface, writer io.Writer) VersionGetter { func NewKubeVersionGetter(client clientset.Interface) VersionGetter {
return &KubeVersionGetter{ return &KubeVersionGetter{
client: client, client: client,
w: writer,
} }
} }
@ -63,7 +59,6 @@ func (g *KubeVersionGetter) ClusterVersion() (string, *versionutil.Version, erro
if err != nil { if err != nil {
return "", nil, errors.Wrap(err, "Couldn't fetch cluster version from the API Server") return "", nil, errors.Wrap(err, "Couldn't fetch cluster version from the API Server")
} }
fmt.Fprintf(g.w, "[upgrade/versions] Cluster version: %s\n", clusterVersionInfo.String())
clusterVersion, err := versionutil.ParseSemantic(clusterVersionInfo.String()) clusterVersion, err := versionutil.ParseSemantic(clusterVersionInfo.String())
if err != nil { if err != nil {
@ -75,7 +70,6 @@ func (g *KubeVersionGetter) ClusterVersion() (string, *versionutil.Version, erro
// KubeadmVersion gets kubeadm version // KubeadmVersion gets kubeadm version
func (g *KubeVersionGetter) KubeadmVersion() (string, *versionutil.Version, error) { func (g *KubeVersionGetter) KubeadmVersion() (string, *versionutil.Version, error) {
kubeadmVersionInfo := version.Get() kubeadmVersionInfo := version.Get()
fmt.Fprintf(g.w, "[upgrade/versions] kubeadm version: %s\n", kubeadmVersionInfo.String())
kubeadmVersion, err := versionutil.ParseSemantic(kubeadmVersionInfo.String()) kubeadmVersion, err := versionutil.ParseSemantic(kubeadmVersionInfo.String())
if err != nil { if err != nil {
@ -91,10 +85,6 @@ func (g *KubeVersionGetter) VersionFromCILabel(ciVersionLabel, description strin
return "", nil, errors.Wrapf(err, "Couldn't fetch latest %s from the internet", description) return "", nil, errors.Wrapf(err, "Couldn't fetch latest %s from the internet", description)
} }
if description != "" {
fmt.Fprintf(g.w, "[upgrade/versions] Latest %s: %s\n", description, versionStr)
}
ver, err := versionutil.ParseSemantic(versionStr) ver, err := versionutil.ParseSemantic(versionStr)
if err != nil { if err != nil {
return "", nil, errors.Wrapf(err, "Couldn't parse latest %s", description) return "", nil, errors.Wrapf(err, "Couldn't parse latest %s", description)
@ -143,7 +133,11 @@ func NewOfflineVersionGetter(versionGetter VersionGetter, version string) Versio
// VersionFromCILabel will return the version that was passed into the struct // VersionFromCILabel will return the version that was passed into the struct
func (o *OfflineVersionGetter) VersionFromCILabel(ciVersionLabel, description string) (string, *versionutil.Version, error) { func (o *OfflineVersionGetter) VersionFromCILabel(ciVersionLabel, description string) (string, *versionutil.Version, error) {
if o.version == "" { if o.version == "" {
return o.VersionGetter.VersionFromCILabel(ciVersionLabel, description) versionStr, version, err := o.VersionGetter.VersionFromCILabel(ciVersionLabel, description)
if err == nil {
fmt.Printf("[upgrade/versions] Latest %s: %s\n", description, versionStr)
}
return versionStr, version, err
} }
ver, err := versionutil.ParseSemantic(o.version) ver, err := versionutil.ParseSemantic(o.version)
if err != nil { if err != nil {