1.130. io.k8s.apimachinery.pkg.runtime.RawExtension スキーマ


説明

RawExtension は、外部バージョンでエクステンションを保持するために使用されます。

これを使用するには、外部のバージョン管理された構造で type が RawExtension で、内部構造に Object を持つフィールドを作成します。また、さまざまなプラグインタイプを登録する必要もあります。

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 にアンマーシャリングします。これにより、raw JSON が保存されますが、デプロイメントされません。次のステップは、(pkg/conversion を使用して) 内部構造体にコピーします。ランタイムパッケージの DefaultScheme には、RawExtension に格納されている JSON をデプロイメントし、正しいオブジェクトタイプに変換して、Object に格納する変換関数がインストールされています。(TODO: オブジェクトのタイプが不明な場合、runtime.Unknown オブジェクトが作成され、保存されます。)

タイプ
object
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.