Merge pull request #356 from paivagustavo/remove-object-from-crds-describe
remove 'object' field when viewing YAML of CRDsmine
commit
326c642a2a
|
|
@ -7,9 +7,11 @@ import (
|
||||||
"path"
|
"path"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
|
||||||
|
|
||||||
"github.com/derailed/k9s/internal/k8s"
|
"github.com/derailed/k9s/internal/k8s"
|
||||||
"github.com/rs/zerolog/log"
|
"github.com/rs/zerolog/log"
|
||||||
yaml "gopkg.in/yaml.v2"
|
"gopkg.in/yaml.v2"
|
||||||
metav1beta1 "k8s.io/apimachinery/pkg/apis/meta/v1beta1"
|
metav1beta1 "k8s.io/apimachinery/pkg/apis/meta/v1beta1"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -79,6 +81,10 @@ func (r *Custom) Marshal(path string) (string, error) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
|
switch v := i.(type) {
|
||||||
|
case *unstructured.Unstructured:
|
||||||
|
i = v.Object
|
||||||
|
}
|
||||||
|
|
||||||
raw, err := yaml.Marshal(i)
|
raw, err := yaml.Marshal(i)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,8 @@ package resource_test
|
||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
|
||||||
|
|
||||||
"github.com/derailed/k9s/internal/k8s"
|
"github.com/derailed/k9s/internal/k8s"
|
||||||
"github.com/derailed/k9s/internal/resource"
|
"github.com/derailed/k9s/internal/resource"
|
||||||
m "github.com/petergtz/pegomock"
|
m "github.com/petergtz/pegomock"
|
||||||
|
|
@ -55,6 +57,19 @@ func TestCustomMarshal(t *testing.T) {
|
||||||
assert.Equal(t, customYaml(), ma)
|
assert.Equal(t, customYaml(), ma)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestCustomMarshalWithUnstructured(t *testing.T) {
|
||||||
|
mc := NewMockConnection()
|
||||||
|
mr := NewMockCruder()
|
||||||
|
m.When(mr.Get("blee", "fred")).ThenReturn(k8sUnstructured(), nil)
|
||||||
|
|
||||||
|
cm := NewCustomWithArgs(mc, mr)
|
||||||
|
ma, err := cm.Marshal("blee/fred")
|
||||||
|
mr.VerifyWasCalledOnce().Get("blee", "fred")
|
||||||
|
|
||||||
|
assert.Nil(t, err)
|
||||||
|
assert.Equal(t, unstructuredYAML(), ma)
|
||||||
|
}
|
||||||
|
|
||||||
func TestCustomListData(t *testing.T) {
|
func TestCustomListData(t *testing.T) {
|
||||||
mc := NewMockConnection()
|
mc := NewMockConnection()
|
||||||
mr := NewMockCruder()
|
mr := NewMockCruder()
|
||||||
|
|
@ -109,6 +124,28 @@ func k8sCustomTable() *metav1beta1.Table {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func k8sUnstructured() *unstructured.Unstructured {
|
||||||
|
return &unstructured.Unstructured{
|
||||||
|
Object: map[string]interface{}{
|
||||||
|
"kind": "fred",
|
||||||
|
"apiVersion": "v1",
|
||||||
|
"metadata": map[string]interface{}{
|
||||||
|
"namespace": "blee",
|
||||||
|
"name": "fred",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func unstructuredYAML() string {
|
||||||
|
return `apiVersion: v1
|
||||||
|
kind: fred
|
||||||
|
metadata:
|
||||||
|
name: fred
|
||||||
|
namespace: blee
|
||||||
|
`
|
||||||
|
}
|
||||||
|
|
||||||
func k8sCustomRow() *metav1beta1.TableRow {
|
func k8sCustomRow() *metav1beta1.TableRow {
|
||||||
return &metav1beta1.TableRow{
|
return &metav1beta1.TableRow{
|
||||||
Object: runtime.RawExtension{
|
Object: runtime.RawExtension{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue