1.145. io.k8s.apimachinery.pkg.runtime.RawExtension schema


설명

RawExtension는 외부 버전의 확장을 유지하는 데 사용됩니다.

이를 사용하려면 내부 구조에서 External, versioned struct 및 Object의 유형으로 RawExtension가 있는 필드를 만듭니다. 또한 다양한 플러그인 유형을 등록해야 합니다.

type MyAPIObject struct {
	runtime.TypeMeta `json:",inline"`
	MyPlugin runtime.Object `json:"myPlugin"`
}
type PluginA struct {
	AOption string `json:"aOption"`
}
type MyAPIObject struct {
	runtime.TypeMeta `json:",inline"`
	MyPlugin runtime.RawExtension `json:"myPlugin"`
}
type PluginA struct {
	AOption string `json:"aOption"`
}
{
	"kind":"MyAPIObject",
	"apiVersion":"v1",
	"myPlugin": {
		"kind":"PluginA",
		"aOption":"foo",
	},
}

그러면 어떻게 될까요? 먼저 json 또는 yaml을 사용하여 직렬화된 데이터를 외부 MyAPIObject로 분리합니다. 이렇게 하면 원시 JSON이 저장되지만 압축 해제되지 않습니다. 다음 단계는 pkg/conversion을 사용하여 내부 구조를 복사하는 것입니다. 런타임 패키지의 DefaultScheme에는 RawExtension에 저장된 JSON의 압축을 풀고 올바른 오브젝트 유형으로 전환한 후 Object에 저장하는 변환 기능이 설치되어 있습니다. (TODO: 개체가 알 수 없는 유형인 경우 runtime.Unknown 개체가 생성되어 저장됩니다.)

유형
object
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.