12.2.5. operator_sdk.util Ansible コレクションを使用したカスタムリソースのステータス管理


Ansible ベースの Operator は、カスタムリソース (CR) status サブリソース を以前の Ansible 実行についての一般的な情報で自動的に更新します。これには、以下のように成功したタスクおよび失敗したタスクの数と関連するエラーメッセージが含まれます。

status:
  conditions:
    - ansibleResult:
      changed: 3
      completion: 2018-12-03T13:45:57.13329
      failures: 1
      ok: 6
      skipped: 0
    lastTransitionTime: 2018-12-03T13:45:57Z
    message: 'Status code was -1 and not [200]: Request failed: <urlopen error [Errno
      113] No route to host>'
    reason: Failed
    status: "True"
    type: Failure
  - lastTransitionTime: 2018-12-03T13:46:13Z
    message: Running reconciliation
    reason: Running
    status: "True"
    type: Running

さらに Ansible ベースの Operator は、Operator の作成者が operator_sdk util コレクション に含まれる k8s_status Ansible モジュールでカスタムのステータス値を指定できるようにします。これにより、作成者は必要に応じ、任意のキー/値のペアを使って Ansible から status を更新できます。

デフォルトでは、Ansible ベースの Operator には、上記のように常に汎用的な Ansible 実行出力が含まれます。アプリケーションのステータスが Ansible 出力で更新 されない ようにする必要がある場合に、アプリケーションからステータスを手動で追跡することができます。

手順

  1. CR ステータスをアプリケーションから手動で追跡するには、 manageStatus フィールドを false に設定して監視ファイルを更新します。

    - version: v1
      group: api.example.com
      kind: Foo
      role: Foo
      manageStatus: false
  2. 次に、operator_sdk.util.k8s_status Ansible モジュールを使用してサブリソースを更新します。たとえば、キー foo および値 bar を使用して更新するには、operator_sdk.util を以下のように使用することができます。

    - operator_sdk.util.k8s_status:
        api_version: app.example.com/v1
        kind: Foo
        name: "{{ meta.name }}"
        namespace: "{{ meta.namespace }}"
        status:
          foo: bar

コレクションは、新たにスキャフォールディングされた Ansible Operator に含まれるロールの meta/main.yml で宣言することもできます。

collections:
  - operator_sdk.util

ロールのメタでコレクションを宣言すると、k8s_status モジュールを直接起動することができます。

+

k8s_status:
  <snip>
  status:
    foo: bar

追加リソース

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.