Argo CD v2.2 release candidate
#翻訳
原文: Argo CD v2.2 release candidate. It is time for the next Argo CD… | by Alexander Matyushentsev | Nov, 2021 | Argo Project
次のArgo CDリリースの時間です! Argo CD v2.2には、73人の寄稿者からの207のコミットが含まれています。これには、3つの主要な新機能に加えて、数十のバグ修正、使いやすさ、パフォーマンスの向上が含まれます。詳細については、以下をお読みください。
Project Scoped Repositories and Clusters
Argo CDを使用する方法はたくさんありますが、非常に一般的なシナリオは、マルチユーザーインストールです。単一のArgo CDインスタンスがあり、オペレーターによって管理されていますが、自身のプロジェクトの概要を求める開発者もアクセスできます。
Argo CDには、Gitリポジトリを接続するためのネイティブ統合と、開発者がデプロイターゲットとして使用できるKubernetesクラスターの構成があります。これまでの一般的なフローは、オペレーターが事前に承認されたすべてのリポジトリーとクラスターを使用してArgoCDを構成することでした。
このアプローチの大きな問題は、多くの場合、開発者が新しいgitリポジトリとクラスターを追加したいが、オペレーターだけがそれを行う権限を持っていることです。開発者がArgo CDを更新するチケットを待っている一方で彼らのアプリケーションのデプロイがブロックされることは、大きなアンチパターンであり、セルフサービスとすべてのチーム間の緊密なコラボレーションを促進するDevOpsの精神に反します。
この問題に対処するために、プロジェクトスコープのリポジトリとクラスターをArgo CD 2.2に追加しました。 つまり、オペレーターが事前に使用できるすべてのクラスターとgitリポジトリーを構成する必要がなく、開発者はオンデマンドでこれを自分で行うことができるようになりました。
これが機能する方法は、オペレーターがプロジェクトのRBACルールを使用して、受け入れ可能なクラスターとgitリポジトリーを柔軟に記述することです。 次に、開発者は、受け入れられたRBAC基準に一致する場合、クラスターまたはリポジトリーをArgoCDに独自に追加できます。 チケットを開いたり、チケットが処理されるのを待ったりする必要はもうありません。
詳細については、ドキュメントページをご覧ください。
Config Management Plugins V2
デプロイメントリポジトリ内のプレーンなYAMLマニフェストに加えて、Argo CDはさまざまな構成管理ツールをサポートしています。 このリストには、Kustomize、Helm、Jsonnetなどの人気のあるツールが含まれています。 ただし、Kubernetesエコシステムには他にも多くの人気のあるツールがあります。 追加のツールは、構成管理プラグイン機能を使用して統合できます。 この機能により、任意のシェルスクリプトをKubernetesリソースマニフェストのジェネレーターとして構成できます。 このリリースでは、構成管理プラグイン機能が強化され、非常に使いやすくなっています。
Argo CD 2.2では、プラグインはサイドカーコンテナーで実行され、プラグインの依存関係をパッケージ化するために別のイメージを使用できます。 したがって、Node JS、Python、またはプラグインに必要なその他の依存関係を含むイメージを作成できます。 プラグインイメージには、プラグインに関する必要なすべての情報を含むplugin.yamlファイルが必要です。
すべてを1つのイメージにまとめることで、入門エクスペリエンスが向上します。 インストールに必要なのは、argocd-repo-serverデプロイメントパッチのみです。 パッチは別のGitリポジトリに保持され、Kustomizeコンポーネントとして配信されます。 これにより、統合の詳細をエンドユーザーやArgo CD管理者からさえも完全に隠すことができます。
構成管理プラグイン機能の改善に引き続き取り組む予定です。 次のステップは、CLIとArgo CD UIを改善して、あらゆる構成管理ツールにファーストクラスのようなエクスペリエンスを提供することです。
Resource tracking
Argo CDは、従来、よく知られている「app.kubernetes.io/instance」プロパティによって管理するリソースを追跡してきました。
このプロパティの使用は単純なシナリオでは問題ありませんが、いくつかの制限もあります。
ラベルは63文字に切り捨てられます。 ラベルのサイズによっては、あなたのアプリケーションのためにもっと長い名前を保存したいと思うかもしれません。
他の外部ツールがこのラベルに書き込み/追加し、ArgoCDとの競合を引き起こす可能性があります。 たとえば、いくつかのHelmチャートとオペレーターも、生成されたマニフェストにこのラベルを使用し、アプリケーションの所有者についてArgoCDを混乱させます。
同じクラスターに複数のArgo CDインスタンスを(クラスター全体の特権で)デプロイし、どのリソースがArgo CDのどのインスタンスによって管理されているかを簡単に識別できるようにしたいかもしれません。
これらの問題を克服するために、Argo CDでは、リソースを追跡するために新しいアノテーションargocd.argoproj.io/tracking-idを使用できるようになりました。 このアノテーションを使用すると、他のKubernetesツールとの競合がなく、同じクラスターに複数のArgo CDインスタンスを簡単にインストールできるため、はるかに柔軟なアプローチになります。 次に例を示します。
argo-cm configmapを編集することにより、新しい追跡方法を有効にできます。 既存のラベルまたは新しい注釈のいずれかを使用するオプションとは別に、両方を使用する互換性オプションがありますが、追跡目的でのみ注釈を尊重します。 詳細については、ドキュメントページをご覧ください。
Bug Fixes and Performance Enhancements
最後になりましたが、このリリースでは、数十から数十のユーザビリティ/パフォーマンスの強化とバグ修正が提供されます。 以下は、最も注目すべき改善点の短いリストです。
Argo CD APIサーバーはRBACチェックをキャッシュし、GET / api / v1 / Applications APIのパフォーマンスを大幅に向上させます(#7587)
https://github.com/argoproj/argo-cd/pull/7587
Argo CD RBACは正規表現のマッチをサポートします(#7165)
https://github.com/argoproj/argo-cd/pull/7165
KubeVirt(#7176)、Cassandra(#7017)、Openshift Route(#7112)、DeploymentConfig(#7114)、Confluent(#6957)、SparkApplication(#7434)CRDのヘルスチェックサポート。
https://github.com/argoproj/argo-cd/pull/7176
https://github.com/argoproj/argo-cd/pull/7017
https://github.com/argoproj/argo-cd/pull/7112
https://github.com/argoproj/argo-cd/pull/7114
https://github.com/argoproj/argo-cd/pull/6957
https://github.com/argoproj/argo-cd/pull/7434
カスタムポジショニング(#7462)を備えた永続的なバナー(#7312)
https://github.com/argoproj/argo-cd/pull/7462
https://github.com/argoproj/argo-cd/pull/7312
プロジェクトの宛先でのクラスター名のサポート(#7198)
https://github.com/argoproj/argo-cd/issues/7198
30以上の機能と合計84のバグ修正
Where Can I Get the New Release?
詳細とインストール手順については、リリースノートとアップグレード手順を確認してください。 リリース候補を試して、フィードバックを共有してください。 すべてのArgoCommunityの貢献者とユーザーの貢献、フィードバック、およびリリースのテストにご協力いただき、ありがとうございます。
#ArgoCD #Kubernetes