Merge pull request #85032 from jfbai/move-fmt-out-of-api

refactor: move unwanted console output out of versiongetter API
This commit is contained in:
Kubernetes Prow Robot 2019-12-09 08:38:02 -08:00 committed by GitHub
commit 55f81314cc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
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
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

View File

@ -85,12 +85,14 @@ func GetAvailableUpgrades(versionGetterImpl VersionGetter, experimentalUpgradesA
if err != nil {
return upgrades, err
}
fmt.Printf("[upgrade/versions] Cluster version: %s\n", clusterVersionStr)
// Get current kubeadm CLI version
kubeadmVersionStr, kubeadmVersion, err := versionGetterImpl.KubeadmVersion()
if err != nil {
return upgrades, err
}
fmt.Printf("[upgrade/versions] kubeadm version: %s\n", kubeadmVersionStr)
// Get and output the current latest 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.Println("[upgrade/versions] WARNING: Falling back to current kubeadm version as latest stable version")
stableVersionStr, stableVersion = kubeadmVersionStr, kubeadmVersion
} else {
fmt.Printf("[upgrade/versions] Latest %s: %s\n", "stable version", stableVersionStr)
}
// Get the kubelet versions in the cluster
@ -144,6 +148,8 @@ func GetAvailableUpgrades(versionGetterImpl VersionGetter, experimentalUpgradesA
if err != nil {
fmt.Printf("[upgrade/versions] WARNING: %v\n", err)
} else {
fmt.Printf("[upgrade/versions] Latest %s: %s\n", description, patchVersionStr)
// 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
// 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 {
return upgrades, err
}
fmt.Printf("[upgrade/versions] Latest %s: %s\n", "experimental version", latestVersionStr)
minorUnstable := latestVersion.Components()[1]
// Get and output the current latest unstable version
@ -219,6 +226,7 @@ func GetAvailableUpgrades(versionGetterImpl VersionGetter, experimentalUpgradesA
if err != nil {
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 rcUpgradesAllowed && rcUpgradePossible(clusterVersion, previousBranchLatestVersion) {

View File

@ -17,6 +17,7 @@ limitations under the License.
package upgrade
import (
"fmt"
"strings"
"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"))
return skewErrors
}
fmt.Printf("[upgrade/versions] Cluster version: %s\n", clusterVersionStr)
kubeadmVersionStr, kubeadmVersion, err := versionGetter.KubeadmVersion()
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"))
return skewErrors
}
fmt.Printf("[upgrade/versions] kubeadm version: %s\n", kubeadmVersionStr)
kubeletVersions, err := versionGetter.KubeletVersions()
if err != nil {

View File

@ -18,8 +18,6 @@ package upgrade
import (
"fmt"
"io"
"github.com/pkg/errors"
"k8s.io/api/core/v1"
@ -46,14 +44,12 @@ type VersionGetter interface {
// KubeVersionGetter handles the version-fetching mechanism from external sources
type KubeVersionGetter struct {
client clientset.Interface
w io.Writer
}
// NewKubeVersionGetter returns a new instance of KubeVersionGetter
func NewKubeVersionGetter(client clientset.Interface, writer io.Writer) VersionGetter {
func NewKubeVersionGetter(client clientset.Interface) VersionGetter {
return &KubeVersionGetter{
client: client,
w: writer,
}
}
@ -63,7 +59,6 @@ func (g *KubeVersionGetter) ClusterVersion() (string, *versionutil.Version, erro
if err != nil {
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())
if err != nil {
@ -75,7 +70,6 @@ func (g *KubeVersionGetter) ClusterVersion() (string, *versionutil.Version, erro
// KubeadmVersion gets kubeadm version
func (g *KubeVersionGetter) KubeadmVersion() (string, *versionutil.Version, error) {
kubeadmVersionInfo := version.Get()
fmt.Fprintf(g.w, "[upgrade/versions] kubeadm version: %s\n", kubeadmVersionInfo.String())
kubeadmVersion, err := versionutil.ParseSemantic(kubeadmVersionInfo.String())
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)
}
if description != "" {
fmt.Fprintf(g.w, "[upgrade/versions] Latest %s: %s\n", description, versionStr)
}
ver, err := versionutil.ParseSemantic(versionStr)
if err != nil {
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
func (o *OfflineVersionGetter) VersionFromCILabel(ciVersionLabel, description string) (string, *versionutil.Version, error) {
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)
if err != nil {