1.6. バグ修正

API サーバーと認証
  • 以前は、暗号化状態が無期限に残る場合があり、一部の Operator のパフォーマンスが低下した状態として報告されることがありました。古い暗号化状態が適切にクリアされ、不適切に報告されなくなりました。(BZ#1974520)
  • 以前は、API サーバークライアント証明書の CA は、クラスターの存続期間の早い段階でローテーションされていました。これにより、同じ名前の以前の CSR がまだ存在していたため、認証 Operator は証明書署名要求 (CSR) を作成できませんでした。TokenReview リクエストを送信するときに、Kubernetes API サーバーが OAuth API サーバーに対して自身を認証できなかったため、認証が失敗していました。生成された名前は、認証 Operator が CSR を作成するときに使用されるようになったため、API サーバークライアント証明書の CA を早期にローテーションしても、認証が失敗することはなくなりました。(BZ#1978193)
ベアメタルハードウェアのプロビジョニング
  • 以前のバージョンでは、metal3 Pod は、initContainers の作成による Red Hat Enterprise Linux CoreOS (RHCOS) イメージをダウンロードできませんでした。この問題は、initContainers の作成の順序を変更し、metal3-machine-os-downloader initContainer の前に metal-static-ip-set initContainer が作成されることで修正されています。RHCOS イメージが期待どおりにダウンロードされるようになりました。(BZ#1973724)
  • 以前のバージョンでは、idrac-virtualmedia を使用するように設定されたホストでベアメタルでインストーラーでプロビジョニングされるインストールを使用する場合は、そのホストの bios_interface はデフォルトで idrac-wsman に設定されていました。これにより、BIOS 設定が利用できなくなり、例外が発生します。この問題は、idrac-virtualmedia を使用する際にデフォルトの bios_interfaceidrac-redfish を使用して修正されています。(BZ#1928816)
  • 以前のバージョンでは、UEFI モードでは、RHCOS イメージのダウンロード後に ironic-python-agent が UEFI ブートローダーエントリーを作成していました。RHEL 8.4 に基づく RHCOS イメージを使用する場合、このエントリーを使用してイメージを起動できず、BIOS エラー画面が出力されることがありました。これは、固定のブートエントリーを使用する代わりに、イメージにある CSV ファイルに基づいてブートエントリーを設定する ironic-python-agent により修正されています。イメージはエラーなしで正常に起動します。(BZ#1966129)
  • 以前のバージョンでは、provisioningHostIPinstall-config に設定されていると、provisioning ネットワークが無効になっていても metal3 Pod に割り当てられました。これは修正されています。(BZ#1972753)
  • 以前のバージョンでは、アシスト付きインストーラーでは、sushy リソースライブラリーの不一致があるため、Supermicro X11/X12 ベースのシステムをプロビジョニングできませんでした。不一致により、仮想メディアを Inserted 属性と WriteProtected 属性にアタッチできず、VirtualMedia.InsertMedia リクエスト本文で許可されないため、インストールの問題が発生しました。この問題は、sushy リソースライブラリーを変更し、厳密に必要でない場合にこれらの任意の属性の送信を停止する条件を追加することで修正され、インストールをこの時点を超えて進めることができます。(BZ#1986238)
  • 以前のバージョンでは、プロビジョニングされた状態の一部のエラータイプにより、ホストのプロビジョニングが解除されていました。これは、ベアメタルホストにプロビジョニングされるイメージが利用不可になった場合に、metal3 Pod の再起動後に発生しました。この場合、ホストはプロビジョニング解除状態になります。この問題は、プロビジョニングされた状態でのエラーのアクションを変更することで修正され、イメージが使用できなくなった場合にエラーが報告されますが、プロビジョニング解除は開始しません。(BZ#1972374)
ビルド
  • OpenShift Container Platform 以降では、バグ BZ#1884270 の修正により、SCP 形式の URL を提供しようとして、SSH プロトコル URL が誤ってプルーニングされました。このエラーにより、oc new-build コマンドは自動ソースクローンシークレットを選択しませんでした。ビルドは、build.openshift.io/sbuild.openshift.io/source-secret-match-uri-1ource-secret-match-uri-1 アノテーションを使用して、SSH キーを、関連するシークレットにマップすることができず、git クローンを実行できませんでした。今回の更新により、BZ#1884270 からの変更が元に戻され、ビルドがアノテーションを使用し、git クローンを実行できるようになりました。
  • この更新の前は、クラスターイメージ設定のさまざまな許可されたブロックレジストリー設定オプションにより、Cluster Samples Operator によるイメージストリームの作成がブロックされることがありました。この問題が発生すると、samples Operator 自体が degraded とマークされ、一般的な OpenShift Container Platform のインストールおよびアップグレードステータスに影響が出ます。

    Cluster Samples Operator は、さまざまな状況で removed としてブートストラップできます。今回の更新では、イメージコントローラーの設定パラメーター により、デフォルトのイメージレジストリーまたは samplesRegistry 設定 で指定されたイメージレジストリーを使用してイメージストリームを作成できない場合が含まれています。Operator ステータスは、クラスターイメージ設定がサンプルイメージストリームの作成を阻止するタイミングも指定します。

クラウドコンピュート
  • 以前は、新しいサーバーの root ボリュームが作成され、そのサーバーが正常に作成されなかった場合、ボリュームに関連付けられたサーバーの削除がなかったため、ボリュームの自動削除はトリガーされませんでした。状況によっては、これにより多くのボリュームが追加で作成され、ボリュームクォータに達した場合にエラーが発生しました。このリリースでは、サーバー作成の呼び出しが失敗すると、新しく作成された root ボリュームが削除されます。(BZ#1943378)
  • 以前は、instanceType のデフォルト値を使用すると、Machine API は AWS で m4.large インスタンスを作成していました。これは、OpenShift Container Platform インストーラーによって作成されるマシンの m5.large インスタンスタイプとは異なります。このリリースでは、デフォルト値が指定されている場合、Machine API は AWS で新しいマシンの m5.large インスタンスを作成します。(BZ#1953063)
  • 以前のバージョンでは、コンピュートノードのマシンセット定義は、ポートがトランキングすべきかどうかを指定しませんでした。これは、ユーザーが同じマシンにトランクポートと非トランクポートを設定する必要がある技術で問題でした。今回のリリースにより、新しいフィールド spec.Port.Trunk = bool が追加されました。これにより、ユーザーはトランクとなるポートをより柔軟に判断できるようになりました。値が指定されていない場合、spec.Port.Trunkspec.Trunk の値を継承します。また、作成されたトランクの名前は、使用するポートの名前と一致します。(BZ#1964540)
  • 以前は、Machine API Operator は、すでにアタッチされている場合でも、常に新しいターゲットをアタッチしていました。AWS API を過度に呼び出すことで、多数のエラーが発生していました。このリリースでは、Operator は、アタッチメントプロセスを試行する前に、ロードバランサーのアタッチメントが必要かどうかを確認します。この変更により、API リクエストが失敗する頻度が減少します。(BZ#1965080)
  • 以前は、仮想マシンに自動ピン留めを使用すると、プロパティーの名前は disabledexisting、または adjust されていました。このリリースでは、名前が各ポリシーをより適切に説明するようになり、existing は oVirt でブロックされているため削除されました。新しいプロパティー名は noneresize_and_pin で、oVirt ユーザーインターフェイスと一致します。(BZ#1972747)
  • 以前は、クラスターオートスケーラーが csidrivers.storage.k8s.io または csistoragecapacities.storage.k8s.io リソースにアクセスできなかったため、パーミッションエラーが発生していました。この修正により、クラスターオートスケーラーに割り当てられたロールが更新され、これらのリソースへのパーミッションが含まれるようになります。(BZ#1973567)
  • 以前は、ノードが削除されたマシンを削除することが可能でした。これにより、マシンはいつまでも削除フェーズのままとなっていました。この修正により、この状態のマシンを適切に削除できます。(BZ#1977369)
  • boot-from-volume イメージを使用する場合、マシンコントローラーが再起動されると、新規インスタンスを作成すると、ボリュームをリークします。これにより、以前に作成されたボリュームがクリーンアップされることはありませんでした。この修正により、以前に作成されたボリュームがプルーニングまたは再利用されることが保証されます。(BZ#1983612)
  • 以前のリリースでは、Red Hat Virtualization(RHV) プロバイダーは、マシン用の br-ex という名前の NIC を無視していました。OVNKubernetes のネットワーク種別により br-ex 名で NIC が作成されるため、マシンが OVN-Kubernetes で IP アドレスを取得しなくなりました。今回の修正により、ネットワークが OVNKubernetes に設定された状態で、OpenShift Container Platform を RHV にインストールできるようになりました。(BZ#1984481)
  • 以前は、プロキシーとカスタム CA 証明書を組み合わせて Red Hat OpenStack Platform(RHOSP) にデプロイすると、クラスターが完全に機能するようにはなりませんでした。この修正により、カスタム CA 証明書で接続する際に、使用される HTTP トランスポートにプロキシー設定が渡され、すべてのクラスターコンポーネントが想定どおりに機能します。(BZ#1986540)
Cluster Version Operator
  • 以前は、Cluster Version Operator(CVO) は、プロキシー設定リソースの noProxy プロパティーを尊重していませんでした。その結果、プロキシーされていない接続のみが完了したときに、CVO は更新の推奨事項またはリリース署名へのアクセスを拒否されました。現在は、プロキシーリソースが、直接のプロキシーされていないアクセスを要求すると、CVO はアップストリームの更新サービスと署名ストアに直接到達します。(BZ#1978749)
  • 以前は、Cluster Version Operator(CVO) は、Network Operator で検証されたステータスプロパティーからではなく、プロキシーリソース仕様プロパティーからプロキシー設定をロードしていました。その結果、誤って設定された値があると、CVO がアップストリームの更新サービスまたは署名ストアに到達できなくなっていました。現在、CVO は、検証済みのステータスプロパティーからのみプロキシー設定をロードします。(BZ#1978774)
  • 以前は、Cluster Version Operator(CVO) は、マニフェストの外部に追加されたボリュームマウントを削除しませんでした。その結果、ボリューム障害時に Pod の作成が失敗する可能性があります。CVO は、マニフェストに表示されないすべてのボリュームマウントを削除するようになりました。(BZ#2004568)
コンソールストレージプラグイン
  • 以前は、Ceph ストレージを操作するときに、コンソールストレージプラグインに namespace パラメーターの冗長な使用が不必要に含まれていました。このバグは、お客様に見える形での影響はありませんでしが、namespace の冗長な使用を回避するために、プラグインが更新されました。(BZ#1982682)
Image Registry
  • レジストリーがカスタム容認を使用する必要があるかどうかを確認する Operator は、spec.tolerations ではなく spec.nodeSelector を確認していました。spec.tolerations のカスタム容認は、spec.nodeSelector が設定されている場合にのみ適用されます。この修正では、フィールド spec.tolerations を使用して、カスタム容認の存在を確認します。現在、spec.tolerations が設定されている場合、Operator はカスタム容認を使用します。(BZ#1973318)
  • configs.imageregistryspec.managementStateRemoved に設定 (これにより、イメージプルーナー Pod は v1.21 以降の非推奨となった CronJob に関する警告を生成) されるため、batch/v1 を使用する必要があります。この修正は、OpenShift Container Platform oc における batch/v1batch/v1beta1 を更新します。現在は、イメージプルーナー Pod の非推奨の CronJob に関する警告が表示されなくなりました。(BZ#1976112)
インストーラー
  • 以前は、Azure コントロールプレーンノードのネットワークインターフェイスで、インターフェイス名にハイフンがありませんでした。これは、他のプラットフォームと比較して一貫性がなく、問題を引き起こしていました。不足しているハイフンが追加されました。プラットフォームに関係なく、すべてのコントロールプレーンノードの名前は同じになりました。(BZ#1882490)
  • oVirt の install-config.yaml ファイルの autoPinningPolicy および hugepages フィールドを設定できるようになりました。autoPinningPolicy フィールドでは、クラスターに対する Non-Uniform Memory Access(NUMA) ピニング設定および CPU トポロジーの変更を自動的に設定できます。hugepages フィールドでは、ハイパーバイザーの Hugepages を設定できます。(BZ#1925203)
  • 以前は、FIPS を有効にして Ed25519 SSH キータイプを使用した場合、インストールプログラムを使用できなくても、エラーは出力されませんでした。現在は、インストールプログラムは SSH キータイプを検証し、FIPS が有効な SSH キータイプがサポートされていない場合にエラーを出力します。FIPS が有効になっている場合は、RSA および ECDSA SSH キータイプのみが許可されます。(BZ#1962414)
  • 特定の条件では、Red Hat OpenStack Platform(RHOSP) ネットワークのトランクには、トランクがクラスターに属していることを示すタグが含まれていません。その結果、クラスターの削除によりトランクポートがなくなり、タイムアウトするまでループに陥りました。クラスターを削除すると、タグ付けされたポートが親となるトランクが削除されるようになりました。(BZ#1971518)
  • 以前は、Red Hat OpenStack Platform(RHOSP) でクラスターをアンインストールするときに、インストーラーは非効率的なアルゴリズムを使用して、リソースを削除していました。非効率的なアルゴリズムにより、アンインストールプロセスに必要以上の時間がかかりました。インストーラーは、クラスターをより迅速にアンインストールする、より効率的なアルゴリズムで更新されます。(BZ#1974598)
  • 以前は、AWS_SHARED_CREDENTIALS_FILE 環境変数が空のファイルに設定されていた場合、インストーラーは認証情報の入力を求めてから、環境変数の値を無視し、場合によっては既存の認証情報を上書きして、aws/credentials ファイルを作成しました。この修正により、指定されたファイルに認証情報を保存するようにインストーラーが更新されます。指定されたファイルに無効な認証情報がある場合、インストーラーはファイルを上書きして情報が失われるリスクを冒す代わりに、エラーを生成します。(BZ#1974640)
  • 以前は、別のクラスターとリソースを共有している Azure 上のクラスターをユーザーが削除すると、あいまいなエラーメッセージが表示され、削除が失敗した理由を理解するのが困難でした。この更新では、障害が発生する理由を説明するエラーメッセージが追加されます。(BZ#1976016)
  • 以前は、タイプミスが原因で、Kuryr のデプロイメントは間違った要件に対してチェックされていました。つまり、Kuryr の最小要件を満たしていない場合でも、Kuryr を使用したインストールが、正常に実行される可能性がありました。この修正によりエラーが解消され、インストーラーが適切な要件を確認できるようになります。(BZ#1978213)
  • この更新の前は、keepalived の Ingress チェックに fall および raise ディレクティブが含まれていませんでした。つまり、1 回のチェックに失敗すると、Ingress 仮想 IP フェイルオーバーが発生する可能性がありました。このバグ修正では、fall および raise ディレクティブを導入し、このようなフェイルオーバーを防ぎます。(BZ#1982766)
Kubernetes API サーバー
  • 以前は、デプロイメントとイメージストリームが同時に作成されると、デプロイメントコントローラーが無限ループでレプリカセットを作成する原因となる競合状態が発生する可能性がありました。API サーバーのイメージポリシープラグインのロールが軽減され、デプロイメントとイメージストリームを同時に作成しても、無限のレプリカセットが発生することはなくなりました。(BZ#1925180), (BZ#1976775)
  • 以前は、同じパスに書き込んでいたインストーラー Pod と cert-syncer コンテナーの間に競合がありました。これにより、一部の証明書を空のままにし、サーバーの実行が妨げられる可能性があります。Kubernetes API サーバー証明書は、複数のプロセス間の競合を防ぐために、アトミックな方法で記述されるようになりました。(BZ#1971624)
モニタリング
  • 今回の更新以前は、cluster-monitoring-view ユーザーロールは Alertmanager へのアクセスのみを許可されていましたが、このロールが割り当てられた管理者以外のユーザーはアラートを作成し、非通知に設定することができていました。今回の更新により、このロールだけが割り当てられたユーザーは、アラートの作成または非通知設定を実行できなくなりました。管理者以外のユーザーがアラートを作成し、非通知設定できるようにするには、cluster-monitoring-view ロールに加えて、新しい monitoring-alertmanager-edit ロールを割り当てる必要があります。(BZ#1947005)
ネットワーク
  • OVN-Kubernetes クラスターネットワークプロバイダーを使用する場合、論理フローキャッシュはメモリー制限なしで設定されていました。その結果、状況によっては、メモリーの負荷が高くなると、ノードが使用できなくなる可能性がありました。この更新により、論理フローキャッシュはデフォルトで 1GB のメモリー制限で設定されます。(BZ#1961757)
  • OVN-Kubernetes クラスターネットワークプロバイダーを使用する場合、OpenShift Container Platform 4.5 クラスターで作成され、その後アップグレードされたネットワークポリシーは、予期しないトラフィックを許可またはドロップする可能性があります。OpenShift Container Platform の後のバージョンでは、OVN-Kubernetes は IP アドレスセットの管理に異なる規則を使用し、OpenShift Container Platform4.5 で作成されたネットワークポリシーは、この規則を使用しませんでした。現在は、アップグレード中に、すべてのネットワークポリシーが新しい規則に移行されます。(BZ#1962387)
  • OVN-Kubernetes クラスターネットワークプロバイダーの場合、must-gather を使用して Open vSwitch(OVS) ログを取得すると、収集されたログデータには、INFO ログレベルがありませんでした。現在は、すべてのログレベルが OVS ログデータに含まれます。(BZ#1970129)
  • 以前は、パフォーマンステストにより、ラベル要件が原因で、サービスコントローラーメトリックスのカーディナリティが大幅に増加していることが明らかになりました。その結果、Open Virtual Network(OVN)Prometheus Pod のメモリー使用量が増加しました。この更新により、ラベル要件が削除されました。サービスコントローラーのカーディナリティメトリックスとメモリー使用量が削減されました。(BZ#1974967)
  • 以前は、ovnkube-trace は、インターフェイスの link インデックスを検出する必要があったため、送信元 Pod や宛先 Pod に iproute をインストールする必要がありました。これにより、iproute がインストールされていない場合、Pod で ovnkube-trace が失敗します。iproute ではなく、/sys/class/net/<interface>/iflink から link インデックスを取得できるようになりました。その結果、ovnkube-trace では、送信元 Pod および宛先 Pod に iproute をインストールする必要がなくなりました。(BZ#1978137)
  • 以前は、Cluster Network Operator(CNO) は、network-check-source サービスのサービスモニターをデプロイして、正しいアノテーションとロールベースのアクセス制御 (RBAC) なしで、Prometheus によって検出されていました。その結果、サービスとそのメトリックスが Prometheus に入力されることはありませんでした。現在は、正しいアノテーションと RBAC が、network-check-source サービスの namespace に追加されました。現在は、サービス network-check-source のメトリックスは、Prometheus によってスクレイプされます。(BZ#1986061)
  • 以前のリリースでは、IPv6 DHCP を使用する場合、ノードインターフェイスアドレスは /128 接頭辞でリースされる可能性がありました。その結果、OVN-Kubernetes は同じ接頭辞を使用してノードのネットワークを推測し、他のクラスターノードへのトラフィックを含む他のアドレストラフィックをゲートウェイ経由でルーティングします。今回の更新により、OVN-Kubernetes はノードのルーティングテーブルを検査し、ノードのインターフェイスアドレスのより広いルーティングエントリーをチェックし、その接頭辞を使用してノードのネットワークを推測します。その結果、他のクラスターノードへのトラフィックはゲートウェイ経由でルーティングされなくなりました。(BZ#1980135)
  • 以前のバージョンでは、クラスターが OVN-Kubernetes Container Network Interface プロバイダーを使用する場合、IPv6 アドレスでの egress ルーターの追加の試行に失敗していました。この修正により、IPv6 のサポートが出力ルーター CNI プラグインに追加され、出力ルーターの追加が成功します。(BZ#1989688)
ノード
  • 以前は、コンテナーでは、CRI-O は /proc/mounts ファイルから /etc/mtab ファイルへのシンボリックリンクを作成しませんでした。その結果、ユーザーはコンテナーの /etc/mtab ファイルにマウントされたデバイスのリストを表示できませんでした。CRI-O はシンボリックリンクを追加するようになりました。その結果、ユーザーはコンテナーにマウントされたデバイスを表示できます。(BZ#1868221)
  • 以前は、Pod が作成後にすぐに削除された場合、kubelet が Pod を適切にクリーンアップしない可能性がありました。これにより、Pod が終了状態でスタックし、アップグレードの可用性に影響を与える可能性がありました。この修正により、Pod のライフサイクルロジックが改善され、この問題が回避されます。(BZ#1952224)
  • 以前は、システムメモリーの使用量が予約済みメモリーの 90% を超えたときに、SystemMemoryExceedsReserved アラートが発生していました。その結果、クラスターは必要以上のアラート数を発生させる可能性がありました。このアラームのしきい値は、予約済みメモリーの 95% で発生するように変更されました。(BZ#1980844)
  • 以前は、CRI-O のバグにより、CRI-O の作成したプロセスの子 PID がリークされていました。その結果、負荷がかかっている場合、systemd はかなりの数のゾンビプロセスを作成する可能性があります。これにより、ノードで PID が不足した場合に、ノード障害が発生する可能性があります。リークを阻止するため、CRI-O が修正されました。その結果、これらのゾンビプロセスは作成されなくなりました。(BZ#2003197)
OpenShift CLI (oc)
  • 以前は、レジストリーのミラーリング中に oc コマンドラインツールがクラッシュし、--max-components 引数を使用したときにスライスのインデックス操作がチェックされていないため、slice bounds out of range パニックランタイムエラーが発生していました。この修正により、コンポーネントチェックが範囲外のインデックス値を要求しないようにするチェックが追加され、--max-components 引数を使用するときに oc ツールがパニックにならないようにしました。(BZ#1786835)
  • 以前は、oc describe quota コマンドで、ClusterResourceQuota 値の Used メモリーに一貫性のない単位が表示されていました。これは予測不可能で読みにくいものでした。この修正により、Used メモリーは常に Hard メモリーと同じ単位を使用するようになり、oc describe quota コマンドで予測可能な値が表示されるようになりました。(BZ#1955292)
  • 以前は、クライアントセットアップがないために、oc logs コマンドはパイプラインビルドでは機能しませんでした。クライアントのセットアップが oc logs コマンドで修正され、パイプラインビルドで機能するようになりました。(BZ#1973643)
Operator Lifecycle Manager (OLM)
  • 以前は、インストールされた Operator が、olm.maxOpenShiftVersion を現在のバージョン以下のマイナーな OpenShift Container Platform バージョンに設定した場合、Operator Lifecycle Manager(OLM) のアップグレード可能な条件メッセージが不明確でした。これにより、olm.maxOpenShiftVersion が現在の OpenShift Container Platform バージョンとは異なるバージョンに設定されている場合に、マイナーバージョンとメジャーバージョンのアップグレードのみがブロックされるように指定するように修正された誤ったエラーメッセージが発生しました。(BZ#1992677)
  • 以前は、opm コマンドは、バンドルがインデックスに存在する場合、バンドルの非推奨に失敗していました。その結果、同じ呼び出しでの別の非推奨の一部として切り捨てられたバンドルは、存在しないと報告されました。この更新により、非推奨となる前にバンドルのチェックが追加され、存在しないバンドルと切り捨てられたバンドルが区別されます。その結果、同じアップグレードパスに沿った非推奨のバンドルが存在しないと報告されることはなくなりました。(BZ#1950534)
  • Operator Lifecycle Manager(OLM) がクラスター内のカスタムリソース定義 (CRD) オブジェクトを更新しようとすると、一時的なエラーが発生する可能性があります。これにより、OLM は、CRD を含むインストール計画に永続的に失敗しました。このバグ修正により、OLM が更新され、リソースが変更された競合エラーで CRD の更新が再試行されます。その結果、OLM は、このクラスの一時的なエラーに対し、以前よりも回復力があります。インストール計画は、OLM が再試行して解決できる競合エラーで永続的に失敗しなくなりました。(BZ#1923111)
  • opm index|registry add コマンドは、インデックスからすでに切り捨てられているかどうかに関わらず、置き換えられるインデックスにおける Operator バンドルの有無を検証しようとしました。特定のパッケージでバンドルが非推奨になった後、コマンドは常に失敗していました。このバグ修正により、opm CLI が更新され、このエッジケースが処理され、切り捨てられたバンドルの存在が確認されなくなりました。その結果、特定のパッケージでバンドルが非推奨になった後、コマンドが失敗することはなくなりました。(BZ#1952101)
  • Operator Lifecycle Manager(OLM) は、カタログソースリソースのラベルを使用して、優先度クラスをレジストリー Pod に展開できるようになりました。デフォルトのカタログソースは、クラスターによって管理される namespace の重要なコンポーネントであり、優先度クラスを義務付けています。今回の機能拡張により、openshift-marketplacenamespace のすべてのデフォルトカタログソースには、system-cluster-critical 優先順位クラスが含まれるようになりました。(BZ#1954869)
  • Marketplace Operator は、リース所有者の ID を保持する設定マップにコントローラーの Pod によって配置された所有者参照がある、Leader-for-life の実装を使用していました。これは、Pod がスケジュールされていたノードが使用できなくなり、Pod を終了できなかった場合に問題になります。これにより、設定マップでは、新しいリーダーを選出するためのガベージコレクションが適切に実行されなくなりました。新しい Marketplace Operator バージョンがリーダー選出を獲得できなかったため、マイナーバージョンのクラスターアップグレードはブロックされました。ロックを解除して Marketplace コンポーネントのアップグレードを完了するには、リーダー選出リースを保持している設定マップを手動でクリーンアップする必要がありました。このバグ修正は、Leader-for-lease リーダー選出の実装の使用に切り替わります。その結果、リーダー選出がこのシナリオで立ち往生することはなくなりました。(BZ#1958888)
  • 以前は、インストールプランに新しい Failed フェーズが導入されていました。インストール計画が作成されていた namespace の有効な Operator グループ (OG) またはサービスアカウント (SA) リソースを検出できないと、インストール計画は失敗状態に移行していました。つまり、インストール計画が最初に調整された際にこれらのリソースを検出できなかった場合は、永続的な障害と見なされました。これは、以下に示すインストール計画の以前の動作からのリグレッションでした。

    • OG または SA リソースの検出に失敗すると、調整のためにインストール計画が再キューイングされます。
    • インフォーマキューの再試行制限に達する前に必要なリソースを作成すると、バンドルのアンパック手順が失敗しない限り、インストール計画は Installing フェーズから Complete フェーズに移行します。

    このリグレッションにより、一連のマニフェストを同時に適用して、インストール計画を作成するサブスクリプションを含む Operator をインストールするインフラストラクチャーを構築したユーザーに、必要な OG および SA リソースとともに未知の動作が導入されました。このような場合、OG と SA の調整に遅延が発生するたびに、インストール計画は永続的な障害の状態に移行します。

    このバグ修正により、インストール計画を Failed フェーズに移行したロジックが削除されます。代わりに、調整エラーが発生した場合、インストール計画が再キューイングされるようになりました。その結果、OG が検出されない場合、次の条件が設定されます。

    conditions:
     - lastTransitionTime: ""2021-06-23T18:16:00Z""
     lastUpdateTime: ""2021-06-23T18:16:16Z""
     message: attenuated service account query failed - no operator group found that
     is managing this namespace
     reason: InstallCheckFailed
     status: ""False""
     type: Installed

    有効な OG が作成されると、次の条件が設定されます。

    conditions:
     - lastTransitionTime: ""2021-06-23T18:33:37Z""
     lastUpdateTime: ""2021-06-23T18:33:37Z""
     status: ""True""

    (BZ#1960455)

  • カタログソースを更新する場合、Get 呼び出しの直後に、カタログソースに関連するいくつかのリソースに対する Delete 呼び出しが続きます。場合によっては、リソースがすでに削除されていても、引き続きキャッシュに存在していました。これにより Get 呼び出しは成功しましたが、以下の Delete 呼び出しは、リソースがクラスターに存在しなかったため、失敗しました。このバグ修正により、Operator Lifecycle Manager(OLM) が更新され、リソースが見つからない場合に Delete 呼び出しによって返されるエラーが無視されるようになります。その結果、Delete 呼び出しから"Resource Not Found"エラーが発生するキャッシュの問題が原因で、カタログソースを更新するときに OLM がエラーを報告しなくなりました。(BZ#1967621)
  • 名前が 63 文字の制限を超えるクラスターサービスバージョン (CSV) は、無効な ownerref ラベルを引き起こします。以前は、Operator Lifecycle Manager(OLM) が ownerref 参照を使用して、クラスターロールバインディングを含む所有リソースを取得すると、ラベルが無効であるため、リスターは namespace 内のすべてのクラスターロールバインディングを返しました。このバグ修正により、OLM が更新され、別の方法を使用してサーバーが無効な ownerref ラベルを代わりに拒否できるようになります。その結果、CSV の名前が無効な場合、OLM はクラスターロールバインディングを削除しなくなりました。(BZ#1970910)
  • 以前は、Operator の依存関係は、インストール後に常に永続化されませんでした。依存関係を宣言する Operator をインストールした後、同じ namespace 内でのその後の更新とインストールは、以前にインストールされた Operator の依存関係を尊重できない可能性があります。このバグ修正により、依存関係は、Operator の宣言されたすべてのプロパティーとともに、Operator の ClusterServiceVersion(CSV) オブジェクトのアノテーションに保持されるようになりました。その結果、インストールされた Operator の宣言された依存関係は、今後のインストールでも引き続き尊重されます。(BZ#1978310)
  • 以前は、非推奨のバンドルで Operator を削除すると、非推奨の履歴がガベージコレクションに含まれていませんでした。その結果、Operator を再インストールした場合、バンドルバージョンは非推奨のテーブルを表示していました。今回の更新では、非推奨のバンドルのガベージコレクションを改善し、問題を修正しています。(BZ#1982781)
  • 以前は、クラスターの z-stream バージョンが Operator の互換性の計算に使用されていました。その結果、OpenShift Container Platform のマイクロリリースがブロックされました。この更新では、Operator の互換性の比較でクラスターの z-stream バージョンを無視することにより、この問題を修正しています。(BZ#1993286)
OpenShift API サーバー
  • 以前は、サービスの検出エンドポイントへの単一の失敗した要求により、Operator は Available=False を報告する可能性がありました。耐障害性を高めるために、一連の改善が導入され、さまざまな一時的なエラーによる更新中に、一部の Operator が Available=False を報告しないようにしました。(BZ#1948089)
OpenShift Update Service
  • 以前は、Web コンソールから更新サービスアプリケーションを作成すると、無効なホストエラーが発生していました。これは、デフォルトの OpenShift Update Service(OSUS) アプリケーション名が長すぎるために発生していました。デフォルト名が短く設定され、エラーは発生しなくなりました。(BZ#1939788)
Performance Addon Operator

Performance Addon Operator の以下の更新が OpenShift Container Platform 4.9 で利用可能になりました。

  • 以前は、帯域幅が制限された接続がある環境では、Performance Addon Operator を正しく再起動できませんでした。また、シングルノードクラスターまたはその他のエッジノードがイメージレジストリーへの接続を失った場合も、正しく再起動できませんでした。この更新では、イメージがノードで利用可能である場合に、イメージが registry.redhat.io からプルされないようにすることで、問題が解決されています。この修正により、Performance Addon Operator は、ローカルイメージキャッシュからのイメージを使用して正しく再起動します。(BZ#2055019)
Red Hat Enterprise Linux CoreOS (RHCOS)
  • 以前は、systemd は /etc/kubernetes 内の環境ファイルを読み取ることができませんでした。これは、SELinux ポリシーが原因で、その結果、kubelet が起動しませんでした。ポリシーが変更されました。kubelet が起動し、環境ファイルが読み込まれます。(BZ#1969998)
  • ECKD DASD が接続された s390x カーネル仮想マシン (KVM) では、DASD は通常の virtio ストレージデバイスのように見えますが、VTOC が削除されるとアクセスできなくなります。その結果、KVM に Red Hat Enterprise Linux CoreOS(RHCOS) をインストールする際は、DASD を virtio ブロックデバイスとして使用できませんでした。coreos-installer プログラムが更新され、インストール先が KVM に接続された ECKD DASD などの virtio ストレージデバイスである場合に、VTOC 形式のパーティションテーブルを使用して Red Hat Enterprise Linux CoreOS (RHCOS) をインストールするようになりました。(BZ#1960485)
  • 以前は、NetworkManager-wait-online-service のタイムアウトが早すぎたため、coreos-installer プログラムの起動前に接続を確立できませんでした。その結果、ネットワークの起動に時間がかかりすぎると、coreos-installer プログラムは Ignition 設定をフェッチできませんでした。今回の更新で、NetworkManager-wait-online-service タイムアウトがデフォルトのアップストリーム値まで増えました。その結果、coreos-installer プログラムが Ignition 設定のフェッチに失敗することはなくなりました。(BZ#1967483)
Routing
  • 以前は、Cluster Network Operator(CNO) がプロキシー設定 (特に no_proxy 設定) をサニタイズしようとすると、設定はドリフトされました。これにより、特定の IPv6 CIDR が no_proxy にはありませんでした。この修正により、すべてのシナリオでデュアルスタック (IPV4 および IPV6) を更新するロジックが実装されます。(BZ#1981975)
  • 以前は、dns.config.openshift.io Operator の .spec.privateZone フィールドに誤って入力し、Ingress Operator がプライベートホストゾーンを見つけることができないようにした場合、Ingress Operator の機能が低下していました。ただし、.spec.privateZone フィールドを修正した後でも、Ingress Operator の機能は低下したままでした。Ingress Operator はホストゾーンを検索し、.apps リソースレコードを追加しますが、Ingress Operator はパフォーマンスが低下したステータスをリセットしません。この修正により、DNS 設定オブジェクトが監視され、spec.privateZone フィールドに関する変更が監視されます。適切なロジックを適用し、Operator ステータスを適宜更新します。適切な .spec.privateZone フィールドが設定されると、Operator のステータスは degraded または False に戻ります。(BZ#1942657)
サンプル
  • 以前は、接続タイムアウトがないため、遅延が長くなりました。これは、managementStateRemoved に設定されている Cluster Samples Operator が、registry.redhat.io への接続をテストしたときに発生しました。接続タイムアウトを追加すると、遅延がなくなります。(BZ#1990140)
Storage
  • 以前は、使用中の PV で LocalVolumeSets を削除できましたが、手動でクリーンアップする必要がありました。この修正により、リリースされたすべての PV が自動的にクリーンアップされます。(BZ#1862429)
  • 以前は、oc get volumesnapshotcontent コマンドは、ボリュームスナップショットの namespace を表示しませんでした。これは、ボリュームスナップショットが一意に識別されなかったことを意味します。このコマンドにより、ボリュームスナップショットの namespace が表示されます。(BZ#1965263)
  • 以前のバージョンでは、Manila CSI Operator は自己署名証明書を使用する Red Hat OpenStack Platform (RHOSP) エンドポイントとの通信時にカスタムトランスポートを使用していました。このカスタムトランスポートはプロキシー環境変数を使用していなかったため、Manila CSI Operator は Manila の通信に失敗しました。この更新により、カスタムトランスポートがプロキシー環境変数を使用するようになります。その結果、Manila CSI Operator がプロキシーおよびカスタム CA 証明書とともに機能するようになりました。(BZ#1960152)
  • 以前のバージョンでは、Cinder CSI ドライバー Operator は Red Hat OpenStack Platform (RHOSP) API に接続する設定済みのプロキシーを使用しないため、インストールが失敗する可能性がありました。今回の更新により、プロキシー環境変数がコンテナーに設定されるように、アノテーションが Cinder CSI Driver Operator デプロイメントに含まれるようになりました。その結果、インストールは失敗しなくなりました。(BZ#1985391)
  • Local Storage Operator が新規に追加されたブロックデバイスを検査する頻度は、CPU 消費を減らすために 5 秒から 60 秒に変更されました。(BZ#1994035)
  • 以前のバージョンでは、Manila CSI Operator との通信の失敗により、クラスターが低下しました。今回の更新により、Manila CSI Operator エンドポイントとの通信に失敗し、致命的ではないエラーが生じました。その結果、Manila CSI Operator は、クラスターを低下させる代わりに無効になります。(BZ#2001958)
  • 以前のバージョンでは、Local Storage Operator は 10 秒の遅延で孤立した永続ボリューム (PV) を削除し、遅延は累積的でした。複数の永続ボリュームクレーム (PVC) が同時に削除されると、PV が削除されるまでに数分または数時間かかる場合があります。そのため、対応するローカルディスクは数時間の新しい PVC で利用できませんでした。今回の修正により、10 秒の遅延が削除されました。その結果、PV は検出され、対応するローカルディスクが新規 PVC について利用可能になります。(BZ#2007684)
Web コンソール (Administrator パースペクティブ)
  • 以前は、PF4 テーブルのすべての行が再レンダリングされていました。今回の更新では、React.memo のコンテンツがラップされたため、すべてのスクロールイベントでコンテンツが再レンダリングされることはありません。(BZ#1856355)
  • 以前は、OpenShift Container Platform Web コンソールのクラスター使用率のチャートに、データの期間がわかりにくい方法で表示されていました。たとえば、6 時間の期間オプションが選択されているが、データは最後の 3 時間のみ存在する場合、これらの 3 つのデータポイントはチャート全体を埋めるように引き伸ばされます。最初の 3 時間は表示されません。これにより、チャートが 6 時間の全期間を示していると想定される可能性があります。混乱を避けるために、チャートには情報が不足していることを示す空白が表示されるようになりました。この例では、チャートには 6 時間の期間全体が表示され、データは 4 時間目から始まっています。最初の 3 時間は空白です。(BZ#1904155)
  • 以前は、NetworkPolicy は、Web コンソールで韓国語または中国語に翻訳されていませんでした。今回の更新で、韓国または中国語で Web コンソールを表示する際に、NetworkPolicy が正しく翻訳されるようになりました。(BZ#1965930)
  • 以前は、Console Overview セクションの Needs Attention 状態の問題により、Operator はアップグレード中でなくても upgrading と表示されていました。この更新により、Needs Attention 状態が修正され、Operator の正しいステータスが表示されるようになります。(BZ#1967047)
  • 以前は、失敗した Cluster Service Version(CSV) のアラートに、失敗した CSV のトラブルシューティングに役立たない一般的な status.message が表示されていました。今回の更新により、コピーされた CSV には、トラブルシューティングに役立つメッセージと元の CSV へのリンクが表示されます。(BZ#1967658)
  • 以前は、ユーザーはキーボードを使用して、マストヘッドのドロップダウンオプションを使用できませんでした。この更新により、ユーザーはキーボードを使用して、ドロップダウンオプションにアクセスできるようになりました。(BZ#1967979)
  • 以前は、Operator 所有のリソースをその所有者と一致させるために使用されるユーティリティー関数が、誤った一致を返していました。その結果、Operator 所有のリソースページのManaged byリンクは、誤った URL にリンクすることがありました。この修正により、所有する Operator と正しく一致するように関数ロジックが更新されます。その結果、Managed byリンクが正しい URL にリンクされるようになりました。(BZ#1970011)
  • 以前は、OperatorHubWeb コンソールインターフェイスにより、ユーザーは無関係のインストールプランに誘導されていました。今回の更新では、OperatorHub は Operator Subscription の details タブにユーザーをリンクし、これにより、インストールの進捗状況が表示されるようになりました。(BZ#1970466)
  • 以前は、OAuth の詳細ページの追加ドロップダウンリストのアイテムは、国際化されていませんでした。今回の更新で、これらのアイテムは国際化され、英語を母語としないユーザーのユーザーエクスペリエンスが改善されました。(BZ#1970604)
  • 以前は、無効なローカリゼーションプロパティーにより、一部のメッセージを国際化できませんでした。今回の更新で、無効なプロパティーが削除されました。その結果、これらのメッセージは国際化され、英語を母語としないユーザーのユーザーエクスペリエンスが改善されました。(BZ#1970980)
  • この更新により、リストページのリソースリンクにマウスをかざした際に表示されていたツールチップが削除されます。これは、表示されていた情報によって、ユーザーエクスペリエンスが向上することがなかったためです。(BZ#1971532)
  • 以前のバージョンでは、コンソール Pod は preferredDuringSchedulingIgnoredDuringExecution の非アフィニティールールでデプロイされていたため、両方のコンソール Pod が同じコントロールプレーンノードでスケジュールされることがありました。この修正により、ルールは requiredDuringSchedulingIgnoredDuringExecution に変更され、条件が一致した場合に Pod が別々のノードでスケジュールされるようになりました。(BZ#1975379)
  • 以前は、Operator をアンインストールしても、有効なプラグインをすべて削除できませんでした。このリリースでは、Operator をアンインストールすると、有効になっているすべてのプラグインが削除されるようになりました。(BZ#1975820)
  • 以前は、フロントエンドの Operator Lifecycle Manager(OLM) 記述子の処理では、最初の x 記述子のみを使用して、オペランドの詳細ページにプロパティーをレンダリングしていました。その結果、プロパティーに複数の x 記述子が定義されていて、リストの最初の x 記述子が無効またはサポートされていない場合、期待どおりにレンダリングされませんでした。この修正により、記述子検証ロジックが更新され、サポートされていない x 記述子よりもサポートされている x 記述子が優先されます。そのため、記述子で装飾されたプロパティーは、一覧にある最初の有効かつサポートされている x 記述子を使用して、Operand の詳細ページでレンダリングされます。(BZ#1976072)
  • 以前は、文字列データがエンコードされたシークレットに使用されていました。その結果、バイナリーシークレットデータが Web コンソールによって適切にアップロードされませんでした。この更新では、シークレットがエンコードされ、API で文字列データの代わりにデータが使用されます。その結果、バイナリーシークレットが適切にアップロードされるようになりました。(BZ#1978724)
  • 以前は、クラスターで実行されているプロセスが手動で終了された場合、ターミナルの ps -aux コマンドは、一部のプロセスがクリアされなかったことを示していました。これにより、迷子のプロセスが残り、クラスターが無効な状態のままとなりました。この修正により、すべてのプロセスがクラスター上で正しく終了し、ターミナルに記載されているアクティブなプロセスのリストに表示されないようになります。(BZ#1979571)
  • 以前のバージョンでは、デフォルトのプルシークレットが新規プロジェクトに追加され、複数のレジストリーの認証情報がアップロードされると、最初の認証情報のみが Project Details ページに表示されていました。また、一覧が切り捨てられていることを示すものはありませんでした。その結果、ユーザーが Default pull secret からプロジェクトの詳細をクリックすると、最初の認証情報のみが一覧表示されました。今回の修正により、すべての認証情報が一覧表示されるようになり、現在のページに一覧表示されていない場合には、追加の認証情報が存在することをユーザーに通知します。(BZ#1980704)
  • 以前のバージョンでは、ユーザーがデフォルトのブラウザー言語を簡体字中国語に変更すると、Web コンソールの Overview ページのクラスター使用率リソースメトリックスが、英語と簡体字中国語の組み合わせで表示されていました。今回の修正により、選択された言語のみで、クラスター使用率リソースを表示できるようになりました。(BZ#1982079)
  • 以前のバージョンでは、言語が簡体字中国語に変更された場合に、クラスター使用率の使用統計が、左側のメニューにある projectpod、および node の翻訳と一致しませんでした。この修正により、簡体字中国語の翻訳が修正され、クラスター使用率のメトリックスが top consumers フィルターと一致するようになります。(BZ#1982090)
  • 以前のバージョンでは、サービスアカウントからのデフォルトのプルシークレットではなく、エラーがユーザーに表示されていました。その結果、プロジェクトの詳細画面の情報が不完全になりました。ユーザーは、デフォルトのプルシークレットの一覧全体を表示するために、デフォルトの ServiceAccount に移動する必要がありました。この修正により、ユーザーはプロジェクトの詳細ページで、デフォルトの ServiceAccount からプルシークレットのリスト全体を表示できるようになります。(BZ#1983091)
  • 以前は、ターミナルタブを表示している際に、ノードまたは Pod の Web ページのサイズを変更すると、ブラウザーに 2 つの垂直スクロールバーが表示されることがありました。コンソールが更新され、ウィンドウのサイズが変更されると、スクロールバーが 1 つだけ表示されるようになりました。(BZ#1983220)
  • 以前は、シングルノード開発者プロファイルを使用して OpenShift Container Platform 4.8.2 をインストールするときに、Web コンソールがデプロイされませんでした。インストール計画が作成されていた namespace に対して、有効な Operator グループまたはサービスアカウントが検出されなかった場合、インストール計画は失敗状態になりました。これ以上の試みは行われませんでした。このリビジョンでは、失敗したインストールプランは、Operator グループまたはサービスアカウントが検出されるまで、再度実行されるように設定されています。(BZ#1986129)
  • 以前は、イベントダッシュボードで、More および Show Less が国際化されていなかったため、ユーザーエクスペリエンスは十分ではありませんでした。今回の更新で、テキストは国際化対応となりました。(BZ#1986754)
  • 以前は、コンソールページでサービスの完全修飾ドメイン名 (FQDN) を構築するロジックがありませんでした。その結果、サービスの詳細ページに FQDN 情報が表示されませんでした。今回の更新で、FQDN を設定するロジックが追加され、サービスの FQDN 情報がページで利用できるようになります。(BZ#1996816)
Web コンソール (開発者パースペクティブ)
  • 以前のバージョンでは、タイプ sink の kamelets は、ソース kamelets とともにイベントソースのカタログに表示されていました。現在のリリースでは、イベントソースのカタログにはタイプ source kamelets のみが表示されます。(BZ#1971544)
  • 以前のバージョンでは、ログファイルには改行なしで 1 行に情報が含まれていました。現在のリリースでは、ログファイルに予想される改行が含まれ、ログヘッダーの前後に改行が追加されています。(BZ#1985080)