第3章 CustomResourceDefinition apiextensions.k8s.io/v1


説明
CustomResourceDefinition は、API サーバーで公開する必要があるリソースを表します。その名前は <.spec.name>.<.spec.group> の形式でなければなりません。
タイプ
object
必須
  • spec

3.1. 仕様

プロパティータイプ説明

apiVersion

string

APIVersion はオブジェクトのこの表現のバージョンスキーマを定義します。サーバーは認識されたスキーマを最新の内部値に変換し、認識されない値は拒否することがあります。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources を参照してください。

kind

string

kind はこのオブジェクトが表す REST リソースを表す文字列の値です。サーバーはクライアントが要求を送信するエンドポイントからこれを推測できることがあります。これを更新することはできません。CamelCase を使用します。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds を参照してください。

metadata

ObjectMeta

標準オブジェクトのメタデータの詳細: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

spec

object

CustomResourceDefinitionSpec は、ユーザーがリソースをどのように表示するかを記述します

status

object

CustomResourceDefinitionStatus は、CustomResourceDefinition の状態を示します

3.1.1. .spec

説明
CustomResourceDefinitionSpec は、ユーザーがリソースをどのように表示するかを記述します
タイプ
object
必須
  • group
  • names
  • scope
  • versions
プロパティータイプ説明

変換

object

CustomResourceConversion は、CR のさまざまなバージョンを変換する方法を説明します。

group

string

group は、定義されたカスタムリソースの API グループです。カスタムリソースは /apis/<group>/… の下で提供されます。CustomResourceDefinition の名前 (<names.plural>。<group> の形式) と一致する必要があります。

names

object

CustomResourceDefinitionNames は、この CustomResourceDefinition を提供する名前を示します

preserveUnknownFields

ブール値

preserveUnknownFields は、OpenAPI スキーマで指定されていないオブジェクトフィールドを、ストレージに永続化するときに保持する必要があることを示します。apiVersion、kind、metadata、およびメタデータ内の既知のフィールドは常に保持されます。このフィールドは、spec.versions[*].schema.openAPIV3Schemax-preserve-unknown-fields を true に設定するために非推奨になりました。詳細は、https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#field-pruning を参照してください。

scope

string

スコープは、定義されたカスタムリソースがクラスタースコープか名前空間スコープかを示します。許可される値は、クラスター名前空間 です。

versions

array

version は、定義されたカスタムリソースのすべての API バージョンのリストです。バージョン名は、提供されたバージョンが API ディスカバリーにリストされる順序を計算するために使用されます。バージョン文字列が kube-like の場合、辞書式順序で並べられた kube-like ではないバージョン文字列の上に並べ替えられます。Kube のようなバージョンは v で始まり、その後に数字 (メジャーバージョン) が続き、オプションで文字列 alpha または beta と別の数字 (マイナーバージョン) が続きます。これらは、最初に GA > ベータ > アルファ (GA はベータやアルファなどの接尾辞のないバージョン) でソートされ、次にメジャーバージョン、次にマイナーバージョンでソートされます。バージョンのソート済みリストの例: v10、v2、v1、v11beta2、v10beta3、v3beta1、v12alpha1、v11alpha2、foo1、foo10。

versions[]

object

CustomResourceDefinitionVersion は、CRD のバージョンを記述します。

3.1.2. .spec.conversion

説明
CustomResourceConversion は、CR のさまざまなバージョンを変換する方法を説明します。
タイプ
object
必須
  • strategy
プロパティータイプ説明

strategy

string

ストラテジーは、カスタムリソースがバージョン間でどのように変換されるかを指定します。使用可能な値は "None" (コンバーターは apiVersion のみを変更し、カスタムリソースの他のフィールドにはアクセスしません) および --Webhook )API サーバーは外部 Webhook を呼び出して変換を行います) です。このオプションには追加情報が必要です。これには、spec.preserveUnknownFields が false であり、spec.conversion.webhook が設定されている必要があります。

webhook

object

WebhookConversion は、変換 Webhook を呼び出す方法を説明します

3.1.3. .spec.conversion.webhook

説明
WebhookConversion は、変換 Webhook を呼び出す方法を説明します
タイプ
object
必須
  • conversionReviewVersions
プロパティータイプ説明

clientConfig

object

WebhookClientConfig には、Webhook との TLS 接続を確立するための情報が含まれています。

conversionReviewVersions

array (string)

ConversionReviewVersions は、Webhook が期待する優先される ConversionReview バージョンの順序付きリストです。API サーバーは、サポートするリストの最初のバージョンを使用します。このリストで指定されているバージョンのいずれも API サーバーでサポートされていない場合、カスタムリソースの変換は失敗します。永続化された Webhook 設定で許可されたバージョンが指定されており、API サーバーに認識されているバージョンが含まれていない場合、Webhook の呼び出しは失敗します。

3.1.4. .spec.conversion.webhook.clientConfig

説明
WebhookClientConfig には、Webhook との TLS 接続を確立するための情報が含まれています。
タイプ
object
プロパティータイプ説明

caBundle

string

caBundle は、PEM でエンコードされた CA バンドルであり、Webhook のサーバー証明書を検証するために使用されます。指定しない場合、apiserver のシステム信頼ルートが使用されます。

service

object

ServiceReference は、Service.legacy.k8s.io への参照を保持します

url

string

url は、Webhook の場所を標準の URL 形式 (scheme://host:port/path) で示します。URL または サービス のいずれかを正確に指定する必要があります。

ホスト は、クラスターで実行されているサービスを参照しないでください。代わりに サービス フィールドを使用してください。一部の apiserver では、ホストが外部 DNS を介して解決される場合があります (たとえば、kube-apiserver は、階層化違反になるため、クラスター内 DNS を解決できません)。ホスト は IP アドレスの場合もあります。

この Webhook を呼び出す必要がある可能性のある apiserver を実行するすべてのホストでこの Webhook を実行するように細心の注意を払わない限り、ホスト として localhost または 127.0.0.1 を使用することは危険であることに注意してください。このようなインストールは移植性がない可能性があります。つまり、新しいクラスターで簡単に起動することはできません。

スキームは https である必要があります。URL は https://で始まる必要があります。

パスはオプションであり、存在する場合は、URL で許可される任意の文字列にすることができます。パスを使用して、クラスター識別子などの任意の文字列を Webhook に渡すことができます。

ユーザーまたは基本認証 (user:password @ など) を使用することは許可されていません。フラグメント ("#…") とクエリーパラメーター ("?…") も許可されていません。

3.1.5. .spec.conversion.webhook.clientConfig.service

説明
ServiceReference は、Service.legacy.k8s.io への参照を保持します
タイプ
object
必須
  • namespace
  • name
プロパティータイプ説明

name

string

name はサービスの名前です。必須

namespace

string

namespace は、サービスの名前空間です。必須

path

string

path は、Webhook が接続されるオプションの URL パスです。

port

integer

port は、Webhook が接続されるオプションのサービスポートです。ポート は有効なポート番号 (1〜65535 を含む) である必要があります。下位互換性のために、デフォルトは 443 です。

3.1.6. .spec.names

説明
CustomResourceDefinitionNames は、この CustomResourceDefinition を提供する名前を示します
タイプ
object
必須
  • 複数
  • kind
プロパティータイプ説明

categories

array (string)

カテゴリーは、このカスタムリソースが属するグループ化されたリソースのリストです (例: すべて)。これは API 検出ドキュメントで公開され、クライアントが kubectlgetall などの呼び出しをサポートするために使用します。

kind

string

kind は、リソースのシリアル化された種類です。通常はキャメルケースで単数です。カスタムリソースインスタンスは、この値を API 呼び出しの kind 属性として使用します。

listKind

string

listKind は、このリソースのリストのシリアル化された種類です。デフォルトは`kind`List です。

複数

string

複数形は、提供するリソースの複数形の名前です。カスタムリソースは /apis/<group>/<version>/…/<plural> で提供されます。CustomResourceDefinition の名前 (<names.plural>。<group> の形式) と一致する必要があります。すべて小文字である必要があります。

shortNames

array (string)

shortNames はリソースの短縮名であり、API 検出ドキュメントで公開され、クライアントが kubectlget<shortname> などの呼び出しをサポートするために使用します。すべて小文字である必要があります。

特異な

string

singular は、リソースの単数名です。すべて小文字である必要があります。デフォルトは小文字 です

3.1.7. .spec.versions

説明
version は、定義されたカスタムリソースのすべての API バージョンのリストです。バージョン名は、提供されたバージョンが API ディスカバリーにリストされる順序を計算するために使用されます。バージョン文字列が kube-like の場合、辞書式順序で並べられた kube-like ではないバージョン文字列の上に並べ替えられます。Kube のようなバージョンは v で始まり、その後に数字 (メジャーバージョン) が続き、オプションで文字列 alpha または beta と別の数字 (マイナーバージョン) が続きます。これらは、最初に GA > ベータ > アルファ (GA はベータやアルファなどの接尾辞のないバージョン) でソートされ、次にメジャーバージョン、次にマイナーバージョンでソートされます。バージョンのソート済みリストの例: v10、v2、v1、v11beta2、v10beta3、v3beta1、v12alpha1、v11alpha2、foo1、foo10。
タイプ
array

3.1.8. .spec.versions[]

説明
CustomResourceDefinitionVersion は、CRD のバージョンを記述します。
タイプ
object
必須
  • name
  • served
  • storage
プロパティータイプ説明

additionalPrinterColumns

array

additionalPrinterColumns は、テーブル出力で返される追加の列を指定します。詳細については、https://kubernetes.io/docs/reference/using-api/api-concepts/#receiveing-resources-as-tables を参照してください。列が指定されていない場合、カスタムリソースの経過時間を表示する単一の列が使用されます。

additionalPrinterColumns[]

object

CustomResourceColumnDefinition は、サーバー側の印刷用の列を指定します。

deprecated

ブール値

deprecated は、このバージョンのカスタムリソース API が非推奨であることを示します。true に設定すると、このバージョンへの API リクエストは、サーバー応答で警告ヘッダーを受け取ります。デフォルトは false です。

deprecationWarning

string

deprecationWarning は、API クライアントに返されるデフォルトの警告を上書きします。非推奨 が true の場合にのみ設定できます。デフォルトの警告は、このバージョンが非推奨であることを示しており、安定性が同等以上の最新のバージョンが存在する場合はそれを使用することを推奨します。

name

string

name はバージョン名です。たとえば、v1、v2beta1 などです。カスタムリソースは、このバージョンで /apis/<group>/<version>/… で提供されます。提供 される場合は true です。

schema

object

CustomResourceValidation は、CustomResources の検証メソッドのリストです。

served

ブール値

提供は、このバージョンが REST API を介して提供されることを有効/無効にするフラグです。

storage

ブール値

storage は、カスタムリソースをストレージに永続化するときにこのバージョンを使用する必要があることを示します。storage=true のバージョンが 1 つだけ存在する必要があります。

subresources

object

CustomResourceSubresources は、CustomResources のステータスとスケールサブリソースを定義します。

3.1.9. .spec.versions[].additionalPrinterColumns

説明
additionalPrinterColumns は、テーブル出力で返される追加の列を指定します。詳細については、https://kubernetes.io/docs/reference/using-api/api-concepts/#receiveing-resources-as-tables を参照してください。列が指定されていない場合、カスタムリソースの経過時間を表示する単一の列が使用されます。
タイプ
array

3.1.10. .spec.versions[].additionalPrinterColumns[]

説明
CustomResourceColumnDefinition は、サーバー側の印刷用の列を指定します。
タイプ
object
必須
  • name
  • type
  • jsonPath
プロパティータイプ説明

description

string

description は、この列の人間が読める形式の説明です。

format

string

format は、この列のオプションの OpenAPI タイプ定義です。'name' 形式は、クライアントが列がリソース名であることを識別するのを支援するために、1 次 ID 列に適用されます。詳細については、https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types を参照してください。

jsonPath

string

jsonPath は、この列の値を生成するために各カスタムリソースに対して評価される単純な JSON パス (つまり、配列表記を使用) です。

name

string

name は、人間が読める形式の列の名前です。

priority

integer

priority は、他の列と比較したこの列の相対的な重要度を定義する整数です。数値が小さいほど優先度が高いと見なされます。限られたスペースのシナリオで省略される可能性のある列には、0 より大きい優先順位を与える必要があります。

type

string

type は、この列の OpenAPI 型定義です。詳細については、https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types を参照してください。

3.1.11. .spec.versions[].schema

説明
CustomResourceValidation は、CustomResources の検証メソッドのリストです。
タイプ
object
プロパティータイプ説明

openAPIV3Schema

``

openAPIV3Schema は、検証とプルーニングに使用する OpenAPIv3 スキーマです。

3.1.12. .spec.versions[].subresources

説明
CustomResourceSubresources は、CustomResources のステータスとスケールサブリソースを定義します。
タイプ
object
プロパティータイプ説明

scale

object

CustomResourceSubresourceScale は、CustomResources のスケールサブリソースを提供する方法を定義します。

status

object

CustomResourceSubresourceStatus は、CustomResources のステータスサブリソースを提供する方法を定義します。ステータスは、CustomResource 内の .statusJSON パスで表されます。設定すると、*カスタムリソースの/status サブリソースを公開します*/status サブリソースへの PUT リクエストはカスタムリソースオブジェクトを取得し、ステータススタンザ以外の変更を無視します*カスタムリソースへの PUT/POST/PATCH リクエストは変更を無視しますステータススタンザ

3.1.13. .spec.versions[].subresources.scale

説明
CustomResourceSubresourceScale は、CustomResources のスケールサブリソースを提供する方法を定義します。
タイプ
object
必須
  • specReplicasPath
  • statusReplicasPath
プロパティータイプ説明

labelSelectorPath

string

labelSelectorPath は、Scalestatus.selector に対応するカスタムリソース内の JSON パスを定義します。配列表記のない JSON パスのみが許可されます。.status または .spec の下の JSON パスである必要があります。HorizontalPodAutoscaler と連動するように設定する必要があります。この JSON パスが指すフィールドは、文字列形式のシリアル化されたラベルセレクターを含む文字列フィールド (複雑なセレクター構造体ではない) である必要があります。詳細: https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions#scale-subresource カスタムリソース内の指定されたパスの下に値がない場合は、/scale サブリソース内の status.selector 値は空の文字列にデフォルト設定されます。

specReplicasPath

string

specReplicasPath は、Scalespec.replicas に対応するカスタムリソース内の JSON パスを定義します。配列表記のない JSON パスのみが許可されます。.spec の下の JSON パスである必要があります。カスタムリソースの指定されたパスの下に値がない場合、/scale サブリソースは GET でエラーを返します。

statusReplicasPath

string

statusReplicasPath は、Scalestatus.replicas に対応するカスタムリソース内の JSON パスを定義します。配列表記のない JSON パスのみが許可されます。.status の下の JSON パスである必要があります。カスタムリソースの指定されたパスの下に値がない場合、/scale サブリソースの status.replicas 値はデフォルトで 0 になります。

3.1.14. .spec.versions[].subresources.status

説明
CustomResourceSubresourceStatus は、CustomResources のステータスサブリソースを提供する方法を定義します。ステータスは、CustomResource 内の .statusJSON パスで表されます。設定すると、*カスタムリソースの/status サブリソースを公開します*/status サブリソースへの PUT リクエストはカスタムリソースオブジェクトを取得し、ステータススタンザ以外の変更を無視します*カスタムリソースへの PUT/POST/PATCH リクエストは変更を無視しますステータススタンザ
タイプ
object

3.1.15. .status

説明
CustomResourceDefinitionStatus は、CustomResourceDefinition の状態を示します
タイプ
object
プロパティータイプ説明

acceptedNames

object

CustomResourceDefinitionNames は、この CustomResourceDefinition を提供する名前を示します

conditions

array

条件は、CustomResourceDefinition の特定の側面の状態を示します

conditions[]

object

CustomResourceDefinitionCondition には、この Pod の現在の状態の詳細が含まれています。

storedVersions

array (string)

StoredVersions は、これまでに永続化された CustomResources のすべてのバージョンをリスト表示します。これらのバージョンを追跡すると、etcd に保存されているバージョンの移行パスが可能になります。このフィールドは変更可能であるため、移行コントローラーは別のバージョンへの移行を完了し (古いオブジェクトがストレージに残っていないことを確認)、残りのバージョンをこのリストから削除できます。このリストに存在するバージョンは、spec.versions から削除できません。

3.1.16. .status.acceptedNames

説明
CustomResourceDefinitionNames は、この CustomResourceDefinition を提供する名前を示します
タイプ
object
必須
  • 複数
  • kind
プロパティータイプ説明

categories

array (string)

カテゴリーは、このカスタムリソースが属するグループ化されたリソースのリストです (例: すべて)。これは API 検出ドキュメントで公開され、クライアントが kubectlgetall などの呼び出しをサポートするために使用します。

kind

string

kind は、リソースのシリアル化された種類です。通常はキャメルケースで単数です。カスタムリソースインスタンスは、この値を API 呼び出しの kind 属性として使用します。

listKind

string

listKind は、このリソースのリストのシリアル化された種類です。デフォルトは`kind`List です。

複数

string

複数形は、提供するリソースの複数形の名前です。カスタムリソースは /apis/<group>/<version>/…/<plural> で提供されます。CustomResourceDefinition の名前 (<names.plural>。<group> の形式) と一致する必要があります。すべて小文字である必要があります。

shortNames

array (string)

shortNames はリソースの短縮名であり、API 検出ドキュメントで公開され、クライアントが kubectlget<shortname> などの呼び出しをサポートするために使用します。すべて小文字である必要があります。

特異な

string

singular は、リソースの単数名です。すべて小文字である必要があります。デフォルトは小文字 です

3.1.17. .status.conditions

説明
条件は、CustomResourceDefinition の特定の側面の状態を示します
タイプ
array

3.1.18. .status.conditions[]

説明
CustomResourceDefinitionCondition には、この Pod の現在の状態の詳細が含まれています。
タイプ
object
必須
  • type
  • status
プロパティータイプ説明

lastTransitionTime

time

lastTransitionTime は、ある状態から別の状態に最後に遷移した時間です。

message

string

message は、最後の遷移の詳細を示す人が判読できるメッセージです。

reason

string

理由は、条件の最後の遷移の一意の 1 単語の CamelCase 理由です。

status

string

status は、状態のステータスです。True、False、Unknown の場合があります。

type

string

type は、条件のタイプです。タイプには、確立済み、承認済み、および終了が含まれます。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.