1.2.3. 修正された問題
- 名前空間が終了する際に、ソース名前空間のロールリコンシリエーションが失敗します。
このアップデート以前は、
spec.sourceNamespacesにそのような名前空間が含まれている場合、Red Hat OpenShift GitOps Operator は、Terminating状態のままになっている名前空間でロールを作成または更新しようとしていました。Kubernetes は終了する名前空間にコンテンツを作成することを拒否するため、このことが原因で Argo CD のリコンシリエーション全体が失敗し、残りのソース名前空間の調整が妨げられました。今回のアップデートにより、Red Hat OpenShift GitOps Operator は、DeletionTimestampを持つソース名前空間をスキップするようになり、管理対象名前空間の既存の動作と一致します。その結果、リコンシリエーションは、たとえ 1 つの名前空間が終了に向かっている場合でも、すべての正常な名前空間に対して正常に動作します。- Red Hat OpenShift GitOps コンポーネント向けに最適化された DNS クエリー動作
今回のアップデート以前は、短いクラスターホスト名に対する DNS クエリーによって不要なアップストリームルックアップが発生し、DNS インフラストラクチャーへの負荷が増加していました。今回のアップデートにより、Red Hat OpenShift GitOps コンポーネントは DNS クエリーの動作を最適化し、不要なアップストリームルックアップを最小限に抑えることで、クラスターのパフォーマンスを向上させます。
- Dex サービスアカウントトークンのローテーションによりメモリー不足エラーが発生する
今回のアップデート以前は、Dex サービスアカウントのトークンが期限切れになると、トークンのローテーションによって Dex の設定が変更され、その結果、Argo CD サーバーと Dex プロセスが再起動されていました。再起動のたびに内部リソースが完全に解放されず、Argo CD サーバー Pod でメモリーリークが発生しました。時間の経過とともにメモリー使用量が増加し、最終的にメモリー不足エラーで Pod が終了しました。今回のアップデートにより、サービスアカウントトークンのローテーションは Dex の設定を変更することなくディスク上で処理されるようになったため、Argo CD サーバーと Dex プロセスが再起動される必要がなくなりました。Argo CD サーバー Pod は、トークンローテーションによるメモリー増加が発生しなくなり、ユーザーはメモリー不足による再起動の影響を受けなくなりました。
注記この修正は、下流の Dex イメージに含まれています。上流の Dex イメージを使用している場合、この修正は適用されません。
- Dex サービスアカウントトークンの有効期限切れにより、ユーザーは再認証を強制されます。
このアップデート以前は、Dex サービスアカウントトークンの有効期限が切れると、Dex プロセスが再起動され、メモリー内の署名キーがすべて破棄されていました。その結果、以前に発行されたセッショントークンの検証が失敗し、Argo CD サーバーは認可プロバイダーを繰り返し再初期化し、ログインしていたユーザーは再認証を余儀なくされた。今回のアップデートにより、Dex プロセスを再起動することなく、Dex サービスアカウントトークンがディスク上でローテーションされるようになりました。トークンの有効期限が切れた場合でも、ユーザーは再認証を強制されることはなくなり、Argo CD サーバーも認可プロバイダーを繰り返し再初期化しなくなりました。
注記この修正には、Red Hat OpenShift GitOps に同梱されている Dex イメージが必要です。カスタムまたはコミュニティーの Dex イメージを使用する場合、ディスク上のトークンローテーションはサポートされず、OpenShift OAuth が有効になっていると DexPod のブートストラップが失敗します。