第6章 ClusterVersion [config.openshift.io/v1]
- 説明
- ClusterVersion は、ClusterVersionOperator の設定です。ここで、自動更新に関連するパラメーターを設定できます。互換性レベル 1: メジャーリリース内で最低 12 か月または 3 つのマイナーリリース (どちらか長い方) の間安定しています。
- 型
-
object
- 必須
-
spec
-
6.1. 仕様
プロパティー | 型 | 説明 |
---|---|---|
|
| APIVersion はオブジェクトのこの表現のバージョンスキーマを定義します。サーバーは認識されたスキーマを最新の内部値に変換し、認識されない値は拒否することがあります。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources を参照してください。 |
|
| kind はこのオブジェクトが表す REST リソースを表す文字列の値です。サーバーはクライアントが要求を送信するエンドポイントからこれを推測できることがあります。これを更新することはできません。CamelCase を使用します。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds を参照してください。 |
| 標準オブジェクトのメタデータ。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata を参照してください。 | |
|
| spec は、クラスターバージョンの望ましい状態です。Operator は、望ましいバージョンがクラスターに適用されていることを確認するために作業します。 |
|
| status には、利用可能な更新と進行中の更新に関する情報が含まれます。 |
6.1.1. .spec
- 説明
- spec は、クラスターバージョンの望ましい状態です。Operator は、望ましいバージョンがクラスターに適用されていることを確認するために作業します。
- 型
-
object
- 必須
-
clusterID
-
プロパティー | 型 | 説明 |
---|---|---|
|
| capabilities は、オプションのコアクラスターコンポーネントのインストールを設定します。ここでの null 値は空のオブジェクトと同じです。デフォルトのセマンティクスについては子プロパティーを参照してください。 |
|
| channel は、デフォルト以外の一連の更新をこのクラスターに適用することを明示的に要求するための ID です。デフォルトのチャネルには、本番クラスターに適した安定した更新が含まれます。 |
|
| clusterID は、このクラスターを一意に識別します。これは、RFC4122 UUID 値 (16 進値の xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) であると予想されます。これは必須フィールドです。 |
|
| desiredUpdate は、クラスターバージョンの目的の値を示すオプションのフィールドです。この値を設定すると、アップグレードがトリガーされます (現在のバージョンが目的のバージョンと一致しない場合)。推奨される更新値のセットは、ステータスで利用可能な更新の一部としてリストされており、その範囲外の値を設定すると、アップグレードが失敗する可能性があります。いくつかのフィールドは、ここで説明する制限や意味と相互に関連しています。1. image、version、architecture が指定されている場合。API 検証エラー。2. image と version が指定され、architecture は指定されていない場合。このような設定は行わないでください。version は通知されることなく無視され、image は使用されます。3. image は指定され、version は指定されず、architecture は指定されている場合。API 検証エラー。4. image は指定され、version と architecture は指定されていない場合。image が使用されます。5. image は指定されず、version と architecture が指定されている場合。version と任意の architecture を使用して image が選択されます。6. image は指定されず、version は指定され、architecture は指定されていない場合。version と現在の architecture を使用して image が選択されます。7. image と version が指定されず、architecture は指定されている場合。API 検証エラー。8. image、version、architecture が指定されていない場合。API 検証エラー。アップグレードが失敗した場合、Operator は停止し、失敗したコンポーネントに関するステータスを報告します。目的の更新値を以前のバージョンに戻すと、ロールバックが試行されます。すべてのロールバックが成功するわけではありません。 |
|
| オーバーライドは、クラスターバージョン Operator によって管理されるコンポーネントのオーバーライドのリストです。コンポーネントにマネージド外のマークを付けると、Operator はオブジェクトを作成または更新できなくなります。 |
|
| ComponentOverride を使用すると、コンポーネントに対するクラスターバージョン Operator の動作をオーバーライドできます。 |
|
| アップストリームを使用して、優先する更新サーバーを指定できます。デフォルトでは、クラスターとリージョンに適切な更新サーバーを使用します。 |
6.1.2. .spec.capabilities
- 説明
- capabilities は、オプションのコアクラスターコンポーネントのインストールを設定します。ここでの null 値は空のオブジェクトと同じです。デフォルトのセマンティクスについては子プロパティーを参照してください。
- 型
-
object
プロパティー | 型 | 説明 |
---|---|---|
|
| additionalEnabledCapabilities は、baselineCapabilitySet で定義されたベースラインを超えて、管理対象ケイパビリティーのセットを拡張します。デフォルトは空のセットです。 |
|
| baselineCapabilitySet は、有効にするオプションのケイパビリティーの初期セットを選択します。これは、additionalEnabledCapabilities を使用して拡張できます。設定されていない場合、クラスターはデフォルトを選択しますが、デフォルトは時間の経過とともに変更される可能性があります。現在のデフォルトは vCurrent です。 |
6.1.3. .spec.desiredUpdate
- 説明
- desiredUpdate は、クラスターバージョンの目的の値を示すオプションのフィールドです。この値を設定すると、アップグレードがトリガーされます (現在のバージョンが目的のバージョンと一致しない場合)。推奨される更新値のセットは、ステータスで利用可能な更新の一部としてリストされており、その範囲外の値を設定すると、アップグレードが失敗する可能性があります。いくつかのフィールドは、ここで説明する制限や意味と相互に関連しています。1. image、version、architecture が指定されている場合。API 検証エラー。2. image と version が指定され、architecture は指定されていない場合。このような設定は行わないでください。version は通知されることなく無視され、image は使用されます。3. image は指定され、version は指定されず、architecture は指定されている場合。API 検証エラー。4. image は指定され、version と architecture は指定されていない場合。image が使用されます。5. image は指定されず、version と architecture が指定されている場合。version と任意の architecture を使用して image が選択されます。6. image は指定されず、version は指定され、architecture は指定されていない場合。version と現在の architecture を使用して image が選択されます。7. image と version が指定されず、architecture は指定されている場合。API 検証エラー。8. image、version、architecture が指定されていない場合。API 検証エラー。アップグレードが失敗した場合、Operator は停止し、失敗したコンポーネントに関するステータスを報告します。目的の更新値を以前のバージョンに戻すと、ロールバックが試行されます。すべてのロールバックが成功するわけではありません。
- 型
-
object
プロパティー | 型 | 説明 |
---|---|---|
|
| architecture は、クラスターアーキテクチャーの目的の値を示すオプションフィールドです。この場合のクラスターアーキテクチャーは、シングルアーキテクチャーまたはマルチアーキテクチャーのいずれかを意味します。architecture は Multi にしか設定できないため、シングルアーキテクチャーからマルチアーキテクチャーへの更新のみが許可されます。architecture が設定されている場合は、イメージは設定できず、バージョンを設定する必要があります。有効な値は 'Multi' または空です。 |
|
| force を使用すると、管理者は検証またはアップグレード可チェックに失敗したイメージに更新できます。このオプションは、提供されたイメージがクラスターへの完全な管理アクセスで実行されるため、提供されたイメージの信頼性が帯域外で検証された場合にのみ使用する必要があります。未知の、または潜在的に悪意のあるソースからのイメージには、このフラグを使用しないでください。 |
|
| image は、更新を含むコンテナーイメージの場所です。image は、必要なバージョンが availableUpdates または history に存在しない場合に使用する必要があります。image が設定されている場合、version は無視されます。image が設定されている場合、version は空である必要があります。image が設定されている場合、architecture は指定できません。 |
|
| version は更新バージョンを識別するセマンティックバージョンです。version は、image が指定されている場合は無視され、architecture が指定されている場合は必須です。 |
6.1.4. .spec.overrides
- 説明
- オーバーライドは、クラスターバージョン Operator によって管理されるコンポーネントのオーバーライドのリストです。コンポーネントにマネージド外のマークを付けると、Operator はオブジェクトを作成または更新できなくなります。
- 型
-
array
6.1.5. .spec.overrides[]
- 説明
- ComponentOverride を使用すると、コンポーネントに対するクラスターバージョン Operator の動作をオーバーライドできます。
- 型
-
object
- 必須
-
group
-
kind
-
name
-
namespace
-
unmanaged
-
プロパティー | 型 | 説明 |
---|---|---|
|
| group は、種類が含まれる API グループを識別します。 |
|
| kind は、オーバーライドするオブジェクトを識別します。 |
|
| name はコンポーネントの名前です。 |
|
| 名前空間は、コンポーネントの名前空間です。リソースがクラスタースコープの場合、名前空間は空である必要があります。 |
|
| クラスターバージョン Operator がこのクラスター内のリソースの管理を停止する必要がある場合は、アンマネージドコントロール。デフォルト: false |
6.1.6. .status
- 説明
- status には、利用可能な更新と進行中の更新に関する情報が含まれます。
- 型
-
object
- 必須
-
desired
-
observedGeneration
-
versionHash
-
プロパティー | 型 | 説明 |
---|---|---|
| `` | availableUpdates には、このクラスターに推奨される更新が含まれています。conditionalUpdates に表示され、availableUpdates には表示されない更新は、このクラスターで既知の問題を引き起こす可能性があります。更新が推奨されていない場合、更新サービスが利用できない場合、または無効なチャネルが指定されている場合、このリストは空になる可能性があります。 |
|
| capabilities は、オプションのコアクラスターコンポーネントの状態を記述します。 |
|
| conditionalUpdates には、特定の必須条件を満たしている場合にこのクラスターに推奨される可能性のある更新のリストが含まれます。このクラスターに実際に推奨される更新セットに関心のあるコンシューマーは、availableUpdates を使用する必要があります。推奨される更新がない場合、更新サービスが利用できない場合、空または無効なチャネルが指定されている場合、このリストは空になる可能性があります。 |
|
| ConditionalUpdate は、現在のクラスターが調整しているバージョンを使用するクラスターの一部に推奨される更新を表しますが、その更新は現在のクラスターには推奨されない可能性があります。 |
|
| 条件は、クラスターのバージョンに関する情報を提供します。条件 "Available" は、desiredUpdate に達した場合に true に設定されます。更新が適用されている場合、条件 "Progressing" は true に設定されます。更新が一時的または永続的なエラーによって現在ブロックされている場合、条件 "Degraded" は true に設定されます。条件は、metadata.generation が status.generation と等しい場合に、現在の desiredUpdate に対してのみ有効です。 |
|
| ClusterOperatorStatusCondition は、オペレーターの管理および監視対象コンポーネントの状態を表します。 |
|
| 必要なのは、クラスターが調整しているバージョンです。クラスターがまだ完全に初期化されていない場合は、イメージやタグなどの利用可能な情報が必要になります。 |
|
| 履歴には、クラスターに適用された最新バージョンのリストが含まれます。この値は、クラスターの起動時に空になる場合があり、新しい更新が適用されるときに更新されます。最新の更新はリストの最初にあり、最新の順序で並べられています。ロールアウトが完了した場合、履歴の更新の状態は Completed になります。更新が失敗した場合、または途中で適用された場合、状態は Partial になります。限られた量の更新履歴のみが保持されます。 |
|
| UpdateHistory は、クラスターに対して 1 回試行された更新です。 |
|
| observedGeneration は、同期されている仕様のバージョンを報告します。この値が metadata.generation と等しくない場合、目的のフィールドと条件フィールドは以前のバージョンを表している可能性があります。 |
|
| versionHash は、クラスターが更新されるコンテンツのフィンガープリントです。不必要な作業を避けるために Operator が使用し、内部使用のみを目的としています。 |
6.1.7. .status.capabilities
- 説明
- capabilities は、オプションのコアクラスターコンポーネントの状態を記述します。
- 型
-
object
プロパティー | 型 | 説明 |
---|---|---|
|
| enabledCapabilities は、現在管理されているすべてのケイパビリティーをリスト表示します。 |
|
| knownCapabilities は、現在のクラスターにとって既知のケイパビリティーをすべてリスト表示します。 |
6.1.8. .status.conditionalUpdates
- 説明
- conditionalUpdates には、特定の必須条件を満たしている場合にこのクラスターに推奨される可能性のある更新のリストが含まれます。このクラスターに実際に推奨される更新セットに関心のあるコンシューマーは、availableUpdates を使用する必要があります。推奨される更新がない場合、更新サービスが利用できない場合、空または無効なチャネルが指定されている場合、このリストは空になる可能性があります。
- 型
-
array
6.1.9. .status.conditionalUpdates[]
- 説明
- ConditionalUpdate は、現在のクラスターが調整しているバージョンを使用するクラスターの一部に推奨される更新を表しますが、その更新は現在のクラスターには推奨されない可能性があります。
- 型
-
object
- 必須
-
release
-
risks
-
プロパティー | 型 | 説明 |
---|---|---|
|
| conditions は、条件付き更新の現在のステータスの観察結果を表します。既知のタイプ: * Recommended。現在のクラスターに対して更新が推奨されるかどうか。 |
|
|
条件には、この API リソースの現在の状態の 1 つの側面の詳細が含まれています。--- この構造体は、フィールドパスの .status.conditions で配列として直接使用することを目的としています。たとえば、次のように入力します。FooStatus struct{ // Represents the observations of a foo’s current state. // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition |
|
| release はターゲットとする更新です。 |
|
| risks は、ターゲットリリースへの更新に関連する問題を表します。cluster-version Operator はすべてのエントリーを評価し、1 つ以上のエントリーがあり、すべてのエントリーが更新を推奨している場合にのみ更新を推奨します。 |
|
| ConditionalUpdateRisk は、条件付き更新を推奨しない理由とクラスターの状態を表します。 |
6.1.10. .status.conditionalUpdates[].conditions
- 説明
- conditions は、条件付き更新の現在のステータスの観察結果を表します。既知のタイプ: * Recommended。現在のクラスターに対して更新が推奨されるかどうか。
- 型
-
array
6.1.11. .status.conditionalUpdates[].conditions[]
- 説明
-
条件には、この API リソースの現在の状態の 1 つの側面の詳細が含まれています。--- この構造体は、フィールドパスの .status.conditions で配列として直接使用することを目的としています。たとえば、次のように入力します。FooStatus struct{ // Represents the observations of a foo’s current state. // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition
json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"
// other fields } - 型
-
object
- 必須
-
lastTransitionTime
-
message
-
reason
-
status
-
type
-
プロパティー | 型 | 説明 |
---|---|---|
|
| lastTransitionTime は、ある状態から別の状態に最後に遷移した時間です。これは、基本的な条件が変更された時点となります。不明な場合には、API フィールドが変更された時点を使用することも可能です。 |
|
| message は、遷移の詳細を示す人が判読できるメッセージです。空の文字列の場合もあります。 |
|
| observedGeneration は、それをベースに条件が設定された .metadata.generation を表します。たとえば、.metadata.generation が現在 12 で、.status.conditions[x].observedGeneration が 9 の場合、インスタンスの現在の状態に対して条件が古くなっています。 |
|
| reason には、条件の最後の遷移の理由を示すプログラムによる識別子が含まれます。特定の条件タイプのプロデューサーは、このフィールドの期待値と意味、および値が保証された API と見なされるかどうかを定義できます。値は CamelCase 文字列である必要があります。このフィールドには空白を指定できません。 |
|
| 条件のステータス、True、False、Unknown のいずれか。 |
|
| CamelCase または foo.example.com/CamelCase の条件のタイプ。--- 多くの.condition.type 値は、Available などのリソース全体で一貫していますが、任意の条件が役立つ可能性があるため (.node.status.conditions を参照)、競合を解消する機能が重要です。一致する正規表現は (dns1123SubdomainFmt/)?(qualifiedNameFmt) です。 |
6.1.12. .status.conditionalUpdates[].release
- 説明
- release はターゲットとする更新です。
- 型
-
object
プロパティー | 型 | 説明 |
---|---|---|
|
| チャネルは、リリースが現在属しているシンシナティチャネルのセットです。 |
|
| image は、更新を含むコンテナーイメージの場所です。このフィールドが仕様の一部である場合、バージョンが指定されていて、availableUpdates フィールドに一致するバージョンが含まれている場合、イメージはオプションです。 |
|
| url には、このリリースに関する情報が含まれています。この URL は、リリースの 'url' メタデータプロパティーまたは更新 API によって返されるメタデータによって設定され、ユーザーインターフェイスにリンクとして表示される必要があります。URL フィールドは、テストリリースまたは夜間リリースには設定されない場合があります。 |
|
| version は、更新バージョンを識別するセマンティックバージョンです。このフィールドが仕様の一部である場合、イメージが指定されている場合、バージョンはオプションです。 |
6.1.13. .status.conditionalUpdates[].risks
- 説明
- risks は、ターゲットリリースへの更新に関連する問題を表します。cluster-version Operator はすべてのエントリーを評価し、1 つ以上のエントリーがあり、すべてのエントリーが更新を推奨している場合にのみ更新を推奨します。
- 型
-
array
6.1.14. .status.conditionalUpdates[].risks[]
- 説明
- ConditionalUpdateRisk は、条件付き更新を推奨しない理由とクラスターの状態を表します。
- 型
-
object
- 必須
-
matchingRules
-
message
-
name
-
url
-
プロパティー | 型 | 説明 |
---|---|---|
|
| matchingRules は、どのクラスターがリスクに一致し、どのクラスターが一致しないかを決定するための条件スライスです。スライスは優先度の降順で並べられます。cluster-version Operator はスライスを順番に処理し、最初に正常に評価できたスライスの後で停止します。正常に評価できる条件がない場合、更新は推奨されません。 |
|
| ClusterCondition は、タイプが指定されたクラスター条件の結合です。'type' プロパティーは、どのタイプ固有のプロパティーが該当するか決定します。クラスターで評価されると、条件は一致、不一致、または評価失敗となります。 |
|
| message は、matchingRules がクラスターの状態と一致する場合の、更新リスクに関する追加情報を提供します。これは人間によってのみ消費されます。改行文字 (U + 000A) が含まれている場合があり、改行としてレンダリングする必要があります。 |
|
| name は、matchingRules がクラスターの状態と一致する場合の、条件付き更新を推奨しない理由 (CamelCase) です。 |
|
| url には、このリスクに関する情報が含まれています。 |
6.1.15. .status.conditionalUpdates[].risks[].matchingRules
- 説明
- matchingRules は、どのクラスターがリスクに一致し、どのクラスターが一致しないかを決定するための条件スライスです。スライスは優先度の降順で並べられます。cluster-version Operator はスライスを順番に処理し、最初に正常に評価できたスライスの後で停止します。正常に評価できる条件がない場合、更新は推奨されません。
- 型
-
array
6.1.16. .status.conditionalUpdates[].risks[].matchingRules[]
- 説明
- ClusterCondition は、タイプが指定されたクラスター条件の結合です。'type' プロパティーは、どのタイプ固有のプロパティーが該当するか決定します。クラスターで評価されると、条件は一致、不一致、または評価失敗となります。
- 型
-
object
- 必須
-
type
-
プロパティー | 型 | 説明 |
---|---|---|
|
| promQL は、PromQL に基づくクラスター条件を表します。 |
|
| type はクラスター条件のタイプを表します。これにより、追加のプロパティーのメンバーとセマンティクスが定義されます。 |
6.1.17. .status.conditionalUpdates[].risks[].matchingRules[].promql
- 説明
- promQL は、PromQL に基づくクラスター条件を表します。
- 型
-
object
- 必須
-
promql
-
プロパティー | 型 | 説明 |
---|---|---|
|
| PromQL はクラスターを分類する PromQL クエリーです。このクエリーは、一致する場合は 1 を返し、一致しない場合は 0 を返します。時系列を返さないクエリーや、0 または 1 以外の値を返すクエリーは、評価失敗です。 |
6.1.18. .status.conditions
- 説明
- 条件は、クラスターのバージョンに関する情報を提供します。条件 "Available" は、desiredUpdate に達した場合に true に設定されます。更新が適用されている場合、条件 "Progressing" は true に設定されます。更新が一時的または永続的なエラーによって現在ブロックされている場合、条件 "Degraded" は true に設定されます。条件は、metadata.generation が status.generation と等しい場合に、現在の desiredUpdate に対してのみ有効です。
- 型
-
array
6.1.19. .status.conditions[]
- 説明
- ClusterOperatorStatusCondition は、オペレーターの管理および監視対象コンポーネントの状態を表します。
- 型
-
object
- 必須
-
lastTransitionTime
-
status
-
type
-
プロパティー | 型 | 説明 |
---|---|---|
|
| lastTransitionTime は、現在のステータスプロパティーが最後に更新された時刻です。 |
|
| message は、現在の状態に関する追加情報を提供します。これは人間によってのみ消費されます。改行文字 (U + 000A) が含まれている場合があり、改行としてレンダリングする必要があります。 |
|
| reason は、状態の現在のステータスの CamelCase の理由です。 |
|
| 条件のステータス、True、False、Unknown のいずれか。 |
|
| type は、この条件によって報告されるアスペクトを指定します。 |
6.1.20. .status.desired
- 説明
- 必要なのは、クラスターが調整しているバージョンです。クラスターがまだ完全に初期化されていない場合は、イメージやタグなどの利用可能な情報が必要になります。
- 型
-
object
プロパティー | 型 | 説明 |
---|---|---|
|
| チャネルは、リリースが現在属しているシンシナティチャネルのセットです。 |
|
| image は、更新を含むコンテナーイメージの場所です。このフィールドが仕様の一部である場合、バージョンが指定されていて、availableUpdates フィールドに一致するバージョンが含まれている場合、イメージはオプションです。 |
|
| url には、このリリースに関する情報が含まれています。この URL は、リリースの 'url' メタデータプロパティーまたは更新 API によって返されるメタデータによって設定され、ユーザーインターフェイスにリンクとして表示される必要があります。URL フィールドは、テストリリースまたは夜間リリースには設定されない場合があります。 |
|
| version は、更新バージョンを識別するセマンティックバージョンです。このフィールドが仕様の一部である場合、イメージが指定されている場合、バージョンはオプションです。 |
6.1.21. .status.history
- 説明
- 履歴には、クラスターに適用された最新バージョンのリストが含まれます。この値は、クラスターの起動時に空になる場合があり、新しい更新が適用されるときに更新されます。最新の更新はリストの最初にあり、最新の順序で並べられています。ロールアウトが完了した場合、履歴の更新の状態は Completed になります。更新が失敗した場合、または途中で適用された場合、状態は Partial になります。限られた量の更新履歴のみが保持されます。
- 型
-
array
6.1.22. .status.history[]
- 説明
- UpdateHistory は、クラスターに対して 1 回試行された更新です。
- 型
-
object
- 必須
-
image
-
startedTime
-
state
-
verified
-
プロパティー | 型 | 説明 |
---|---|---|
|
| acceptedRisks は、更新を開始するために受け入れられたリスクを記録します。たとえば、Upgradeable=False または desiredUpdate.force によってオーバーライドされた署名が見つからないこと、または推奨される更新ターゲットの availableUpdates セットに含まれていないにもかかわらず開始された更新を言及します。 |
| `` | 設定されている場合、completionTime は、更新が完全に適用されたときです。現在適用されている更新の完了時間は null になります。完了時間は、現在の更新ではないエントリー (通常は次の更新の開始時間) に常に設定されます。 |
|
| image は、更新を含むコンテナーイメージの場所です。この値は常に入力されます。 |
|
| startedTime は、更新が開始された時刻です。 |
|
| 状態は、更新が完全に適用されたかどうかを反映します。部分状態は、更新が完全に適用されていないことを示し、完了状態は、更新が少なくとも 1 回正常にロールアウトされたことを示します (更新のすべての部分が正常に適用されました)。 |
|
| 検証済みは、提供された更新がインストール前に適切に検証されたかどうかを示します。これが false の場合、クラスターは信頼されていない可能性があります。verified では、更新ターゲットが受け入れられた時点でのクラスターの状態に依存するアップグレード可能チェックはカバーされません。 |
|
| version は、更新バージョンを識別するセマンティックバージョンです。要求されたイメージがバージョンを定義していない場合、またはイメージの取得に失敗した場合、この値は空である可能性があります。 |