GitOps 構成の管理
GitHub または GitLab のリポジトリから、クラスタにアプリをデプロイするための構成を作成します。
Satellite Configは、成功したかどうかにかかわらず、5分ごとに現在の設定を再適用します。 クラスタの設定に更新が行われた場合(たとえば、 kubectl edit を使用した場合など)、 Satellite Config は、 GitHub または GitLab リポジトリで定義されている内容に合わせて設定を再適用します。
Satellite 構成の作成
Satellite Config を使用して、Red Hat OpenShift on IBM Cloud ロケーションまたは Satellite で実行される IBM Cloud クラスターのグループにデプロイする Kubernetes リソースを指定するための構成を作成します。
開始前に
- 必要な許可 を持っていること、および Satellite 構成がクラスターにアクセスできる ことを確認します。 詳しくは、ユーザー許可の確認を参照してください。
- Satellite の構成の 主要な概念 を確認します。
- プライベート・リポジトリーを使用する場合は、プライベート・リポジトリーへの読み取り以上のアクセス権限を持つ個人用アクセス・トークンが含まれているターゲット・クラスター上に シークレットを作成 する必要があります。
プライベートリポジトリを使用するためのシークレットの作成
プライベートリポジトリに接続するには、Git パーソナルアクセストークンを作成し、クラスターに適用する必要があります。
-
Github または Gitlab トークンを作成します。
- Github の場合は、 個人用アクセス・トークンを作成します。 トークンを作成するときは、トークンに
repoスコープを付与して、プライベート・リポジトリーから読み取ることができるようにします。 マシン・ユーザー を作成し、マシン・ユーザーに個人用アクセス・トークンをバインドすることもできます。 - Gitlab の場合は、 個人用トークンを作成 するか、 デプロイ・トークンを作成します。
- Github の場合は、 個人用アクセス・トークンを作成します。 トークンを作成するときは、トークンに
-
トークンを base64 にエンコードします。
printf "TOKEN_FROM_GITHUB_OR_GITLAB" | base64 -
使用するクラスターごとに、クラスターにログインし、以下の YAML ファイルを適用して
razeedeploy名前空間にrazee-gitという名前のシークレットを作成します。apiVersion: v1 data: token: [BASE64_ENCODED_TOKEN_FROM_GITHUB_OR_GITLAB] kind: Secret metadata: name: razee-git namespace: razeedeploy type: OpaqueGitHub と GitLab のリポジトリ間で共有できるシークレットは1つだけです。
コンソールからの Satellite 構成の作成
サンプル・アプリをデプロイするには、 Satellite Config を使用したクラスターへの Kubernetes リソースのデプロイ を参照してください。
カスタム構成を作成するには、 Satellite UI を使用して、以下の手順を実行します。
-
IBM Cloud 資格情報を使用して Satellite 構成 UI にログインします。
-
**「構成の作成」**をクリックします。
-
「テンプレートの参照」 ページで、 GitOps テンプレートを選択します。
-
「構成」 ページで、構成名とプロバイダーを指定します。
項目 説明 設定名 「 Satellite 」の設定名を入力してください。 プロバイダー Satellite の設定用リモートプロバイダーを選択します。このプロバイダーには、クラスターにデプロイされる Kubernetes リソースの定義が格納されています。 オプションは GitHubおよびGitLabです。
- 「 サブスクリプション 」ページで、リポジトリ( URL )、リポジトリの公開範囲( Git )、リファレンスの詳細、ファイルまたはディレクトリへのパス、およびデプロイ先のクラスターグループを指定してください。
項目 説明 リポジトリ URL この Satellite サブスクリプションで使用するリモートリポジトリを入力してください。 リポジトリーの可視性 このリポジトリーがパブリックかプライベートかを選択します。 Git リファレンスの種類 この Satellite サブスクリプションで使用する Git リファレンスの種類を選択してください。 有効な値は、 Branch、Tag、Commit、およびReleaseです。ブランチ/タグ/コミット/リリース名 この Satellite サブスクリプションで使用する Git のリファレンスを入力してください。 パス この Satellite サブスクリプションで使用する、リモートリポジトリ内のファイルへのパスを入力してください。 サブスクリプション名 「 Satellite 」サブスクリプションの名前を入力してください。 ブランチ/タグ/コミット/リリース名は、デフォルトでサブスクリプション名として自動的に入力されます。 クラスターグループ 「 Kubernetes 」リソースをデプロイするクラスターグループの名前を入力してください。
- 「要約」 ページで、表示された情報が正しいことを確認し、 「完了」 をクリックします。
CLI からの Satellite 構成の作成
Satellite のコマンド用CLIプラグインを使用して、設定を作成します。
構成を作成するには、以下のようにします。
-
Satellite Config で使用できるようにクラスターをセットアップします。 この設定には、クラスターグループの作成と、 Satellite Config に対してクラスターへのアクセス権を付与することが含まれます。
-
Satellite の設定を作成します。
ibmcloud sat config create --name CONFIG_NAME [--provider <provider>] [-q]このコマンドの構成要素について コンポーネント 説明 --name <config_name>Satellite 構成の名前を入力します。 --provider <provider>クラスターにデプロイされる Kubernetes リソースの定義を保管する Satellite 構成のリモート・プロバイダーを入力します。 有効な値は githubおよびgitlabです。-qその日のメッセージを表示せず、リマインダーも更新しません。 出力例
Creating configuration... OK Configuration <config_name> was successfully created with ID 116fffde-0835-467c-8987-67dd42e4e393. -
Satellite 構成に対するクラスター・グループの サブスクリプション を作成します。
ibmcloud sat subscription create --name <subscription_name> --group <cluster_group_name> --config <config_name_or_ID> --repository <repository_value> --gitref-type <type_value> --gitref <gitref_value> --path <path_value> [-q]このコマンドの構成要素について コンポーネント 説明 --name <subscription_name>Satellite サブスクリプションの名前を入力します。 --group <cluster_group_name>Kubernetes リソースをデプロイするクラスター・グループの名前を入力します。 --config <config_name_or_ID>先ほど作成した Satellite 構成の名前または ID を入力します。 --repository <repository_value>この Satellite サブスクリプションに使用するリモート・リポジトリーを入力します。 --gitref-type <type_value>この Satellite サブスクリプションに使用する Git 参照のタイプを入力します。 有効な値は、 branch、commit、tag、およびreleaseです。--gitref <gitref_value>この Satellite サブスクリプションに使用する Git 参照を入力します。 --path <path_value>この Satellite サブスクリプションに使用する、リモート・リポジトリー内のファイルへのパスを入力します。 -qその日のメッセージを表示せず、リマインダーも更新しません。 出力例
Creating subscription... OK Subscription <subscription_name> was successfully created with ID f6114bd5-f71e-4335-b034-ca45fa3cab81. -
コンソールからの Satellite 構成の作成の手順 5 に従って、Kubernetes リソースのロールアウト状況を確認します。
Satellite 構成の更新
構成を更新するために、サブスクリプション・レベルで更新を行うことができます。 実行する必要があるアクションは、実行する更新の種類によって異なります。
- アプリケーションの新規バージョンを同じクラスター・グループにデプロイするには、構成に定義されている GitHub または GitLab リポジトリー内のファイルを更新し、変更をコミットします。
- ソース・リポジトリーのプロパティーを変更するには、サブスクリプションを編集し、新しい詳細情報でフィールドを更新します。
- 複数のリポジトリーを同じ構成に関連付ける場合、新規ソース・リポジトリーを追加する場合、または同じソース・リポジトリーの新規 Git 参照詳細を追加する場合は、新規サブスクリプションを作成できます。 サブスクリプションを作成] をクリックし、新しいサブスクリプションの詳細を記入してください。 少数の詳細のみが変更された新規サブスクリプションを作成する場合は、 「複製」 オプションを使用して、すべてのフィールドに既存のサブスクリプションのプロパティーを自動入力し、変更するフィールドを変更することができます。
- サブスクリプションを削除するには、 「削除」 オプションを使用します。
コンソールからのサブスクリプションの更新
Satellite コンソールを使用して、設定を更新してください。
-
IBM Cloud 資格情報を使用して Satellite 構成 UI にログインします。
-
更新したい構成を選択してください。
-
更新するサブスクリプションの行のオーバーフロー・メニューをクリックし、 「編集」 を選択します。
-
「サブスクリプションの編集」 ページで、変更を行い、 「保存」 をクリックします。
CLI を使用した Satellite 構成の更新
Satellite のコマンド用CLIプラグインを使用して、設定を更新してください。 新規ファイルを使用するように構成を更新する場合は、新規ファイルを指すようにサブスクリプションを更新できます。
-
リモート・リポジトリー内の新しい Satellite 構成を使用するように、クラスター・グループの サブスクリプション を更新します。 変更するパラメーターのみを指定する必要があります。
ibmcloud sat subscription update --subscription <subscription_name> [--name <new_subscription_name>] [--group <cluster_group_name>] [--repository <repository_value>] [--gitref-type <type_value>] [--gitref <gitref_value>] [--path <path_value>] [-f] [-q]このコマンドの構成要素について コンポーネント 説明 --subscription <subscription_value>更新するサブスクリプションの名前またはIDを入力してください。 --name <new_subscription_name>サブスクリプションの新しい名前を入力してください。 --group <cluster_group_name>Kubernetes リソースをデプロイするクラスター・グループの名前を入力します。 --repository <repository_value>この Satellite サブスクリプションに使用するリモート・リポジトリーを入力します。 --gitref-type <type_value>この Satellite サブスクリプションに使用する Git 参照のタイプを入力します。 有効な値は、 branch、commit、tag、およびreleaseです。--gitref <gitref_value>この Satellite サブスクリプションに使用する Git 参照を入力します。 --path <path_value>この Satellite サブスクリプションに使用する、リモート・リポジトリー内のファイルへのパスを入力します。 -fユーザー・プロンプトを表示せず、強制的にコマンドを実行します。 -qその日のメッセージを表示せず、リマインダーも更新しません。 出力例
Are you sure you want to update the subscription <subscription_name>? [y/N]y OK Subscription f6114bd5-f71e-4335-b034-ca45fa3cab81 was successfully updated. -
コンソールからの Satellite 構成の作成の手順 5 に従って、Kubernetes リソースのロールアウト状況を確認します。