Merge pull request #356 from paivagustavo/remove-object-from-crds-describe

remove 'object' field when viewing YAML of CRDs
mine
Fernand Galiana 2019-10-15 18:13:43 -06:00 committed by GitHub
commit 326c642a2a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 44 additions and 1 deletions

View File

@ -7,9 +7,11 @@ import (
"path"
"strings"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
"github.com/derailed/k9s/internal/k8s"
"github.com/rs/zerolog/log"
yaml "gopkg.in/yaml.v2"
"gopkg.in/yaml.v2"
metav1beta1 "k8s.io/apimachinery/pkg/apis/meta/v1beta1"
)
@ -79,6 +81,10 @@ func (r *Custom) Marshal(path string) (string, error) {
if err != nil {
return "", err
}
switch v := i.(type) {
case *unstructured.Unstructured:
i = v.Object
}
raw, err := yaml.Marshal(i)
if err != nil {

View File

@ -3,6 +3,8 @@ package resource_test
import (
"testing"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
"github.com/derailed/k9s/internal/k8s"
"github.com/derailed/k9s/internal/resource"
m "github.com/petergtz/pegomock"
@ -55,6 +57,19 @@ func TestCustomMarshal(t *testing.T) {
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) {
mc := NewMockConnection()
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 {
return &metav1beta1.TableRow{
Object: runtime.RawExtension{