mirror of https://github.com/k3s-io/k3s
kubectl rollback: remove duplicated code for printing pod template
parent
f883fd2ce6
commit
20a54b312c
|
@ -36,12 +36,10 @@ import (
|
||||||
"k8s.io/apimachinery/pkg/util/strategicpatch"
|
"k8s.io/apimachinery/pkg/util/strategicpatch"
|
||||||
"k8s.io/apimachinery/pkg/watch"
|
"k8s.io/apimachinery/pkg/watch"
|
||||||
"k8s.io/client-go/kubernetes"
|
"k8s.io/client-go/kubernetes"
|
||||||
api "k8s.io/kubernetes/pkg/apis/core"
|
|
||||||
apiv1 "k8s.io/kubernetes/pkg/apis/core/v1"
|
|
||||||
kapps "k8s.io/kubernetes/pkg/kubectl/apps"
|
kapps "k8s.io/kubernetes/pkg/kubectl/apps"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/scheme"
|
"k8s.io/kubernetes/pkg/kubectl/scheme"
|
||||||
sliceutil "k8s.io/kubernetes/pkg/kubectl/util/slice"
|
sliceutil "k8s.io/kubernetes/pkg/kubectl/util/slice"
|
||||||
printersinternal "k8s.io/kubernetes/pkg/printers/internalversion"
|
|
||||||
// kubectl should not be taking dependencies on logic in the controllers
|
// kubectl should not be taking dependencies on logic in the controllers
|
||||||
deploymentutil "k8s.io/kubernetes/pkg/controller/deployment/util"
|
deploymentutil "k8s.io/kubernetes/pkg/controller/deployment/util"
|
||||||
)
|
)
|
||||||
|
@ -229,14 +227,7 @@ func simpleDryRun(deployment *appsv1.Deployment, c kubernetes.Interface, toRevis
|
||||||
if !ok {
|
if !ok {
|
||||||
return "", revisionNotFoundErr(toRevision)
|
return "", revisionNotFoundErr(toRevision)
|
||||||
}
|
}
|
||||||
buf := bytes.NewBuffer([]byte{})
|
return printTemplate(template)
|
||||||
internalTemplate := &api.PodTemplateSpec{}
|
|
||||||
if err := apiv1.Convert_v1_PodTemplateSpec_To_core_PodTemplateSpec(template, internalTemplate, nil); err != nil {
|
|
||||||
return "", fmt.Errorf("failed to convert podtemplate, %v", err)
|
|
||||||
}
|
|
||||||
w := printersinternal.NewPrefixWriter(buf)
|
|
||||||
printersinternal.DescribePodTemplate(internalTemplate, w)
|
|
||||||
return buf.String(), nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sort the revisionToSpec map by revision
|
// Sort the revisionToSpec map by revision
|
||||||
|
@ -247,15 +238,7 @@ func simpleDryRun(deployment *appsv1.Deployment, c kubernetes.Interface, toRevis
|
||||||
sliceutil.SortInts64(revisions)
|
sliceutil.SortInts64(revisions)
|
||||||
|
|
||||||
template, _ := revisionToSpec[revisions[len(revisions)-2]]
|
template, _ := revisionToSpec[revisions[len(revisions)-2]]
|
||||||
buf := bytes.NewBuffer([]byte{})
|
return printTemplate(template)
|
||||||
buf.WriteString("\n")
|
|
||||||
internalTemplate := &api.PodTemplateSpec{}
|
|
||||||
if err := apiv1.Convert_v1_PodTemplateSpec_To_core_PodTemplateSpec(template, internalTemplate, nil); err != nil {
|
|
||||||
return "", fmt.Errorf("failed to convert podtemplate, %v", err)
|
|
||||||
}
|
|
||||||
w := printersinternal.NewPrefixWriter(buf)
|
|
||||||
printersinternal.DescribePodTemplate(internalTemplate, w)
|
|
||||||
return buf.String(), nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type DaemonSetRollbacker struct {
|
type DaemonSetRollbacker struct {
|
||||||
|
@ -473,14 +456,11 @@ func findHistory(toRevision int64, allHistory []*appsv1.ControllerRevision) *app
|
||||||
|
|
||||||
// printPodTemplate converts a given pod template into a human-readable string.
|
// printPodTemplate converts a given pod template into a human-readable string.
|
||||||
func printPodTemplate(specTemplate *corev1.PodTemplateSpec) (string, error) {
|
func printPodTemplate(specTemplate *corev1.PodTemplateSpec) (string, error) {
|
||||||
content := bytes.NewBuffer([]byte{})
|
podSpec, err := printTemplate(specTemplate)
|
||||||
w := printersinternal.NewPrefixWriter(content)
|
if err != nil {
|
||||||
internalTemplate := &api.PodTemplateSpec{}
|
return "", err
|
||||||
if err := apiv1.Convert_v1_PodTemplateSpec_To_core_PodTemplateSpec(specTemplate, internalTemplate, nil); err != nil {
|
|
||||||
return "", fmt.Errorf("failed to convert podtemplate while printing: %v", err)
|
|
||||||
}
|
}
|
||||||
printersinternal.DescribePodTemplate(internalTemplate, w)
|
return fmt.Sprintf("will roll back to %s", podSpec), nil
|
||||||
return fmt.Sprintf("will roll back to %s", content.String()), nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func revisionNotFoundErr(r int64) error {
|
func revisionNotFoundErr(r int64) error {
|
||||||
|
|
Loading…
Reference in New Issue