私は比較的新しい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",
},
},
},
},
},
}
をしかし、私は、私はそれがでmetav1.TypeMeta
申告によるものである疑いがある
unknown field '"k8s.io/apimachinery/pkg/apis/meta/v1".TypeMeta' in struct literal of type v1beta1.Deployment
を取得Deployment
構造体は未記入のフィールドです。
Kindをどのように宣言すればよいですか?
私はclient-goを使用してリソースを取得していますが、スイッチの決定に「Kind」を使用する必要がありますが、取得したオブジェクトでKindが空です。これを解決する最善の方法は何ですか? –