Config Sync によって最新の commit が適用されて調整されていることを確認する
RootSync API と RepoSync API を有効にしていて、継続的デプロイ(CD)パイプラインで Config Sync を使用する場合は、Git リポジトリの最新の commit がクラスタに適用されて正常に調整されているかどうかを確認する必要があります。このページでは、Config Sync オブジェクトのステータスを確認して検証する方法について説明します。
この確認では次の手順を行います。1 つのステップが失敗しているということは、commit が正常に適用または調整されていないことを意味します。このようなステップは、事前に選択されたタイムアウトで再試行ループに入れることができます。
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 オブジェクトの名前に置き換えます。- フィールド
.status.sync.commit
の値は、最新の commit と同じである必要があります。 - フィールド
.status.sync
にエラーはありません。
- フィールド
最新の commit のリソースがすべて調整されていることを確認します。RootSync オブジェクトまたは RepoSync オブジェクトごとに、Git リポジトリで宣言されたマネージド リソースの調整ステータスを取得する一意の ResourceGroup オブジェクトがあります。ResourceGroup オブジェクトは、RootSync オブジェクトまたは RepoSync オブジェクトと同じ名前空間と名前を使用します。たとえば、名前空間
config-management-system
にroot-sync
という名前の RootSync オブジェクトがある場合、対応する ResourceGroup オブジェクトも名前空間config-management-system
のroot-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 オブジェクトの名前に置き換えます。- まず、
.status.observedGeneration
が ResourceGroup オブジェクトのフィールド.metadata.generation
の値と等しいことを確認します。 - 次に、
Stalled
条件とReconciling
条件の両方のstatus
が"False"
であることを確認します。 - 最後に、
.status.resourceStatuses
フィールドの各項目のステータスがCurrent
であることを確認します。
- まず、