mirror of https://github.com/k3s-io/k3s
Ensure -o yaml populates kind/apiVersion
parent
2bd8a7d5f7
commit
a174d7a2de
|
@ -2386,6 +2386,13 @@ run_secrets_test() {
|
||||||
|
|
||||||
create_and_use_new_namespace
|
create_and_use_new_namespace
|
||||||
kube::log::status "Testing secrets"
|
kube::log::status "Testing secrets"
|
||||||
|
|
||||||
|
# Ensure dry run succeeds and includes kind, apiVersion and data
|
||||||
|
output_message=$(kubectl create secret generic test --from-literal=key1=value1 --dry-run -o yaml)
|
||||||
|
kube::test::if_has_string "${output_message}" 'kind: Secret'
|
||||||
|
kube::test::if_has_string "${output_message}" 'apiVersion: v1'
|
||||||
|
kube::test::if_has_string "${output_message}" 'key1: dmFsdWUx'
|
||||||
|
|
||||||
### Create a new namespace
|
### Create a new namespace
|
||||||
# Pre-condition: the test-secrets namespace does not exist
|
# Pre-condition: the test-secrets namespace does not exist
|
||||||
kube::test::get_object_assert 'namespaces' '{{range.items}}{{ if eq $id_field \"test-secrets\" }}found{{end}}{{end}}:' ':'
|
kube::test::get_object_assert 'namespaces' '{{range.items}}{{ if eq $id_field \"test-secrets\" }}found{{end}}{{end}}:' ':'
|
||||||
|
|
|
@ -50,6 +50,7 @@ func TestCreateClusterRole(t *testing.T) {
|
||||||
verbs: "get,watch,list",
|
verbs: "get,watch,list",
|
||||||
resources: "pods,pods",
|
resources: "pods,pods",
|
||||||
expectedClusterRole: &rbac.ClusterRole{
|
expectedClusterRole: &rbac.ClusterRole{
|
||||||
|
TypeMeta: v1.TypeMeta{APIVersion: "rbac.authorization.k8s.io/v1", Kind: "ClusterRole"},
|
||||||
ObjectMeta: v1.ObjectMeta{
|
ObjectMeta: v1.ObjectMeta{
|
||||||
Name: clusterRoleName,
|
Name: clusterRoleName,
|
||||||
},
|
},
|
||||||
|
@ -67,6 +68,7 @@ func TestCreateClusterRole(t *testing.T) {
|
||||||
verbs: "get,watch,list",
|
verbs: "get,watch,list",
|
||||||
resources: "pods,deployments.extensions",
|
resources: "pods,deployments.extensions",
|
||||||
expectedClusterRole: &rbac.ClusterRole{
|
expectedClusterRole: &rbac.ClusterRole{
|
||||||
|
TypeMeta: v1.TypeMeta{APIVersion: "rbac.authorization.k8s.io/v1", Kind: "ClusterRole"},
|
||||||
ObjectMeta: v1.ObjectMeta{
|
ObjectMeta: v1.ObjectMeta{
|
||||||
Name: clusterRoleName,
|
Name: clusterRoleName,
|
||||||
},
|
},
|
||||||
|
@ -90,6 +92,7 @@ func TestCreateClusterRole(t *testing.T) {
|
||||||
verbs: "get",
|
verbs: "get",
|
||||||
nonResourceURL: "/logs/,/healthz",
|
nonResourceURL: "/logs/,/healthz",
|
||||||
expectedClusterRole: &rbac.ClusterRole{
|
expectedClusterRole: &rbac.ClusterRole{
|
||||||
|
TypeMeta: v1.TypeMeta{APIVersion: "rbac.authorization.k8s.io/v1", Kind: "ClusterRole"},
|
||||||
ObjectMeta: v1.ObjectMeta{
|
ObjectMeta: v1.ObjectMeta{
|
||||||
Name: clusterRoleName,
|
Name: clusterRoleName,
|
||||||
},
|
},
|
||||||
|
@ -106,6 +109,7 @@ func TestCreateClusterRole(t *testing.T) {
|
||||||
nonResourceURL: "/logs/,/healthz",
|
nonResourceURL: "/logs/,/healthz",
|
||||||
resources: "pods",
|
resources: "pods",
|
||||||
expectedClusterRole: &rbac.ClusterRole{
|
expectedClusterRole: &rbac.ClusterRole{
|
||||||
|
TypeMeta: v1.TypeMeta{APIVersion: "rbac.authorization.k8s.io/v1", Kind: "ClusterRole"},
|
||||||
ObjectMeta: v1.ObjectMeta{
|
ObjectMeta: v1.ObjectMeta{
|
||||||
Name: clusterRoleName,
|
Name: clusterRoleName,
|
||||||
},
|
},
|
||||||
|
|
|
@ -51,6 +51,7 @@ func TestCreateRole(t *testing.T) {
|
||||||
verbs: "get,watch,list",
|
verbs: "get,watch,list",
|
||||||
resources: "pods,pods",
|
resources: "pods,pods",
|
||||||
expectedRole: &rbac.Role{
|
expectedRole: &rbac.Role{
|
||||||
|
TypeMeta: v1.TypeMeta{APIVersion: "rbac.authorization.k8s.io/v1", Kind: "Role"},
|
||||||
ObjectMeta: v1.ObjectMeta{
|
ObjectMeta: v1.ObjectMeta{
|
||||||
Name: roleName,
|
Name: roleName,
|
||||||
},
|
},
|
||||||
|
@ -68,6 +69,7 @@ func TestCreateRole(t *testing.T) {
|
||||||
verbs: "get,watch,list",
|
verbs: "get,watch,list",
|
||||||
resources: "replicasets/scale",
|
resources: "replicasets/scale",
|
||||||
expectedRole: &rbac.Role{
|
expectedRole: &rbac.Role{
|
||||||
|
TypeMeta: v1.TypeMeta{APIVersion: "rbac.authorization.k8s.io/v1", Kind: "Role"},
|
||||||
ObjectMeta: v1.ObjectMeta{
|
ObjectMeta: v1.ObjectMeta{
|
||||||
Name: roleName,
|
Name: roleName,
|
||||||
},
|
},
|
||||||
|
@ -85,6 +87,7 @@ func TestCreateRole(t *testing.T) {
|
||||||
verbs: "get,watch,list",
|
verbs: "get,watch,list",
|
||||||
resources: "replicasets.extensions/scale",
|
resources: "replicasets.extensions/scale",
|
||||||
expectedRole: &rbac.Role{
|
expectedRole: &rbac.Role{
|
||||||
|
TypeMeta: v1.TypeMeta{APIVersion: "rbac.authorization.k8s.io/v1", Kind: "Role"},
|
||||||
ObjectMeta: v1.ObjectMeta{
|
ObjectMeta: v1.ObjectMeta{
|
||||||
Name: roleName,
|
Name: roleName,
|
||||||
},
|
},
|
||||||
|
@ -102,6 +105,7 @@ func TestCreateRole(t *testing.T) {
|
||||||
verbs: "get,watch,list",
|
verbs: "get,watch,list",
|
||||||
resources: "pods,deployments.extensions",
|
resources: "pods,deployments.extensions",
|
||||||
expectedRole: &rbac.Role{
|
expectedRole: &rbac.Role{
|
||||||
|
TypeMeta: v1.TypeMeta{APIVersion: "rbac.authorization.k8s.io/v1", Kind: "Role"},
|
||||||
ObjectMeta: v1.ObjectMeta{
|
ObjectMeta: v1.ObjectMeta{
|
||||||
Name: roleName,
|
Name: roleName,
|
||||||
},
|
},
|
||||||
|
|
|
@ -76,6 +76,11 @@ func (p *VersionedPrinter) PrintObj(obj runtime.Object, w io.Writer) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
if !needsConversion {
|
if !needsConversion {
|
||||||
|
// We might be an external type, but have empty kind/apiVersion fields. Ensure they are populated before printing.
|
||||||
|
if obj.GetObjectKind().GroupVersionKind().Empty() {
|
||||||
|
obj = obj.DeepCopyObject()
|
||||||
|
obj.GetObjectKind().SetGroupVersionKind(gvks[0])
|
||||||
|
}
|
||||||
return p.printer.PrintObj(obj, w)
|
return p.printer.PrintObj(obj, w)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue