저는 비교적 golang에 익숙하며 올바른 방향을 가리키는 도움이 필요합니다.Kubernetes API 유형 선언에 대한 유형을 선언 할 수 없습니다.
새로운 Deployment
유형을 선언하려고합니다. 내가 좋아 배포 개체를 만들려고 할 때
import (
"encoding/json"
"fmt"
yaml "gopkg.in/yaml.v2"
"io/ioutil"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/kubernetes/pkg/api/v1"
"k8s.io/kubernetes/pkg/apis/extensions/v1beta1"
)
:
내 수입과 같이 의미가 있습니다
test := v1beta1.Deployment{
Spec: v1beta1.DeploymentSpec{
Template: v1.PodTemplateSpec{
Spec: v1.PodSpec{
Containers: []v1.Container{{
Name: "test",
Image: "image_url",
},
},
},
},
},
}
하지만, 어떤 반환 배포 개체는 Kind
이 없습니다 객체 식별에 필요합니다.
는 https://github.com/kubernetes/kubernetes/blob/master/pkg/apis/extensions/types.go#L162
에 따르면 내가 필요로하는 Kind
개체가 포함 된 metav1.TypeMeta
있다. (참고 : https://github.com/kubernetes/apimachinery/blob/master/pkg/apis/meta/v1/types.go#L38)
나는 구조체 문자 등의 metav1.TypeMeta
선언 시도 :
test := v1beta1.Deployment{
metav1.TypeMeta: metav1.TypeMeta{Kind: "Deployment"}
Spec: v1beta1.DeploymentSpec{
Template: v1.PodTemplateSpec{
Spec: v1.PodSpec{
Containers: []v1.Container{{
Name: "test",
Image: "image_url",
},
},
},
},
},
}
을하지만 나는
을 얻을 unknown field '"k8s.io/apimachinery/pkg/apis/meta/v1".TypeMeta' in struct literal of type v1beta1.Deployment
나는 그것이에서 metav1.TypeMeta
선언으로 인해 의심 Deployment
struct는 안 export 된 필드입니다.
종류를 어떻게 선언해야합니까?
클라이언트 검색을 사용하여 리소스를 가져오고 일부 스위치 결정에 "종류"를 사용해야하지만 검색된 객체에서 종류가 비어 있습니다. 이 문제를 해결하는 가장 좋은 방법은 무엇입니까? –