Config Sync によって最新の commit が適用されて調整されていることを確認する

RootSync API と RepoSync API を有効にしていて、継続的デプロイ(CD)パイプラインで Config Sync を使用する場合は、Git リポジトリの最新の commit がクラスタに適用されて正常に調整されているかどうかを確認する必要があります。このページでは、Config Sync オブジェクトのステータスを確認して検証する方法について説明します。

この確認では次の手順を行います。1 つのステップが失敗しているということは、commit が正常に適用または調整されていないことを意味します。このようなステップは、事前に選択されたタイムアウトで再試行ループに入れることができます。

  1. Git リポジトリの最新の commit が正常に適用されていることを確認します。RootSync オブジェクトまたは RepoSync オブジェクトで .status.sync フィールドをチェックします。.status.sync フィールドにアクセスするには、次のコマンドを実行します。

    # get .status.sync of a RootSync object
    kubectl get rootsync ROOT_SYNC -n config-management-system -o jsonpath='{.status.sync}'
    
    # get .status.sync of a RepoSync object
    kubectl get reposync REPO_SYNC -n REPO_SYNC_NAMESPACE -o jsonpath='{.status.sync}'
    

    ROOT_SYNC は、検索する RootSync オブジェクトの名前に置き換えます。

    REPO_SYNC は、検索する RepoSync オブジェクトの名前に置き換えます。

    REPO_SYNC_NAMESPACE は、検索する RepoSync オブジェクトの名前に置き換えます。

    1. フィールド .status.sync.commit の値は、最新の commit と同じである必要があります。
    2. フィールド .status.sync にエラーはありません。
  2. 最新の commit のリソースがすべて調整されていることを確認します。RootSync オブジェクトまたは RepoSync オブジェクトごとに、Git リポジトリで宣言されたマネージド リソースの調整ステータスを取得する一意の ResourceGroup オブジェクトがあります。ResourceGroup オブジェクトは、RootSync オブジェクトまたは RepoSync オブジェクトと同じ名前空間と名前を使用します。たとえば、名前空間 config-management-systemroot-sync という名前の RootSync オブジェクトがある場合、対応する ResourceGroup オブジェクトも名前空間 config-management-systemroot-sync を使用します。最新の commit が正常に適用されると、ResourceGroup オブジェクトには、最新の commit のマネージド リソースのグループ、種類、名前空間、名前が含まれます。次のコマンドを実行して ResourceGroup オブジェクトを取得できます。

    # get the ResourceGroup object for a RootSync object
    kubectl get resourcegroup ROOT_SYNC -n config-management-system -o yaml
    
    # get the ResourceGroup object for a RepoSync object
    kubectl get resourcegroup REPO_SYNC -n REPO_SYNC_NAMESPACE -o yaml
    

    ROOT_SYNC は、検索する ResourceGroup オブジェクトの名前に置き換えます。

    REPO_SYNC は、検索する ResourceGroup オブジェクトの名前に置き換えます。

    REPO_SYNC_NAMESPACE は、検索する ResourceGroup オブジェクトの名前に置き換えます。

    1. まず、.status.observedGeneration が ResourceGroup オブジェクトのフィールド .metadata.generation の値と等しいことを確認します。
    2. 次に、Stalled 条件と Reconciling 条件の両方の status"False" であることを確認します。
    3. 最後に、.status.resourceStatuses フィールドの各項目のステータスが Current であることを確認します。