はじめに
GitOpsは、Gitリポジトリに格納されている設定・情報を正として、対象のインフラ環境・アプリケーション環境をGitリポジトリ内の状態と同期させることで、環境の状態を一元的に管理できるようにするという考え方・手法です。
Kubernetes(およびOpenShift)の環境では、アプリケーションのソースコード用のGitリポジトリとは別に、DeploymentやServiceなどのマニフェストファイル用のGitリポジトリを用意し、そのGitリポジトリとKubernetes環境を同期させることで、手動でのデプロイ処理(kubectl apply
など)を不要にしたり、環境の状態の履歴管理・ロールバックを容易にしたり、Pull Requestでのマージを承認処理として位置づけたりといったことが可能になります。
GitOpsを実現するソフトウェアとしては、Argo CDやFluxがあります。
Red Hat社のOpenShiftでは、バージョン4.7より、Argo CDを含めたOpenShift GitOpsをテクノロジープレビューとして提供しています。
OpenShift GitOpsは初期状態から導入されているわけではないため、OpenShiftへの追加導入作業が必要となります。
当記事では、IBM Cloud上のマネージドなOpenShift環境である Red Hat OpenShift on IBM Cloud において、OpenShift GitOpsを導入する手順を紹介します。
環境
- Red Hat OpenShift on IBM Cloud 4.7.12 (VPC Gen 2環境に作成)
- OpenShift GitOps 1.1
※当記事の作成時点ではRed Hat OpenShift on IBM Cloudの最新バージョンが4.6であり、スクリーンショットはRed Hat OpenShift on IBM Cloud 4.6、および、(4.6に導入可能であった)OpenShift GitOps 1.0時点のものになります(OpenShiftのWeb管理コンソールが4.6では英語ですが、4.7からは日本語対応しています)。ただ、記事本文は上記記載の環境に準拠しています。
前提
OpenShiftクラスターが既に作成済みであることを前提としています。
導入手順
IBM CloudのOpenShiftクラスターのページにアクセスします。
「OpenShift Webコンソール」ボタンをクリックし、OpenShiftのWebコンソールにアクセスします。
Administratorパースペクティブで、「Operators」→「OperatorHub」をクリックします。
検索フィールドで「gitops」と入力し、検索結果から「Red Hat OpenShift GitOps」を選択します。
特に設定は変更せず、「Install」ボタンをクリックします。
Operatorのインストールが正常に完了した後、「View Operator」ボタンをクリックします。
「Red Hat OpenShift GitOps」Operatorが導入されていることを確認することができます。
Webコンソールの画面上部のルービックキューブのようなアイコンをクリックし、「Argo CD」をクリックします。
すると、Argo CDのログイン画面が以下のように表示されます。
次に、ログインのためのパスワードを取得します。
OpenShiftのWebコンソールを「Developer」パースペクティブに変更します。
Projectを「openshift-gitops」に変更し、画面左側の「Secrets」をクリックし、「openshift-gitops-cluster」Secretをクリックします。
(※スクリーンショットはOpenShift GitOps 1.0.0当時のもののため「argocd-cluster-cluster」Secretとなっていますが、OpenShift GitOps 1.1以上では「openshift-gitops-cluster」Secretになります)
Secretの「admin.password」がArgo CDのパスワードになりますので、右側のコピー用ボタンをクリックしてコピーします。
先ほどのArgo CDのログイン画面で、「Username」に「admin」、「Password」にSecretからコピーしたパスワードを入力し、「SIGN IN」をクリックするとログインすることができます。以下はログイン直後の画面になります。
以上がOpenShift GitOpsの導入編となります。
次の記事「Red Hat OpenShift on IBM Cloudで、OpenShift GitOpsを試す (アプリデプロイ編)」では、OpenShift GitOpsを使用し、サンプルのアプリケーションをデプロイしてみます。