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 リソースを指定するための構成を作成します。

開始前に

プライベートリポジトリを使用するためのシークレットの作成

プライベートリポジトリに接続するには、Git パーソナルアクセストークンを作成し、クラスターに適用する必要があります。

  1. Github または Gitlab トークンを作成します。

  2. トークンを base64 にエンコードします。

    printf "TOKEN_FROM_GITHUB_OR_GITLAB" | base64
    
  3. 使用するクラスターごとに、クラスターにログインし、以下の YAML ファイルを適用して razeedeploy 名前空間に razee-git という名前のシークレットを作成します。

    apiVersion: v1
    data:
      token: [BASE64_ENCODED_TOKEN_FROM_GITHUB_OR_GITLAB]
    kind: Secret
    metadata:
      name: razee-git
      namespace: razeedeploy
    type: Opaque
    

    GitHub と GitLab のリポジトリ間で共有できるシークレットは1つだけです。

コンソールからの Satellite 構成の作成

サンプル・アプリをデプロイするには、 Satellite Config を使用したクラスターへの Kubernetes リソースのデプロイ を参照してください。

カスタム構成を作成するには、 Satellite UI を使用して、以下の手順を実行します。

  1. IBM Cloud 資格情報を使用して Satellite 構成 UI にログインします。

  2. **「構成の作成」**をクリックします。

  3. 「テンプレートの参照」 ページで、 GitOps テンプレートを選択します。

  4. 「構成」 ページで、構成名とプロバイダーを指定します。

    項目 説明
    設定名 「 Satellite 」の設定名を入力してください。
    プロバイダー Satellite の設定用リモートプロバイダーを選択します。このプロバイダーには、クラスターにデプロイされる Kubernetes リソースの定義が格納されています。 オプションは GitHub および GitLab です。
  1. サブスクリプション 」ページで、リポジトリ( URL )、リポジトリの公開範囲( Git )、リファレンスの詳細、ファイルまたはディレクトリへのパス、およびデプロイ先のクラスターグループを指定してください。
    項目 説明
    リポジトリ URL この Satellite サブスクリプションで使用するリモートリポジトリを入力してください。
    リポジトリーの可視性 このリポジトリーがパブリックかプライベートかを選択します。
    Git リファレンスの種類 この Satellite サブスクリプションで使用する Git リファレンスの種類を選択してください。 有効な値は、 BranchTagCommit、および Release です。
    ブランチ/タグ/コミット/リリース名 この Satellite サブスクリプションで使用する Git のリファレンスを入力してください。
    パス この Satellite サブスクリプションで使用する、リモートリポジトリ内のファイルへのパスを入力してください。
    サブスクリプション名 「 Satellite 」サブスクリプションの名前を入力してください。 ブランチ/タグ/コミット/リリース名は、デフォルトでサブスクリプション名として自動的に入力されます。
    クラスターグループ 「 Kubernetes 」リソースをデプロイするクラスターグループの名前を入力してください。
  1. 「要約」 ページで、表示された情報が正しいことを確認し、 「完了」 をクリックします。

CLI からの Satellite 構成の作成

Satellite のコマンド用CLIプラグインを使用して、設定を作成します。

構成を作成するには、以下のようにします。

  1. Satellite Config で使用できるようにクラスターをセットアップします。 この設定には、クラスターグループの作成と、 Satellite Config に対してクラスターへのアクセス権を付与することが含まれます。

  2. 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.
    
  3. 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 参照のタイプを入力します。 有効な値は、branchcommittag、および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.
    
  4. コンソールからの Satellite 構成の作成の手順 5 に従って、Kubernetes リソースのロールアウト状況を確認します。

Satellite 構成の更新

構成を更新するために、サブスクリプション・レベルで更新を行うことができます。 実行する必要があるアクションは、実行する更新の種類によって異なります。

  • アプリケーションの新規バージョンを同じクラスター・グループにデプロイするには、構成に定義されている GitHub または GitLab リポジトリー内のファイルを更新し、変更をコミットします。
  • ソース・リポジトリーのプロパティーを変更するには、サブスクリプションを編集し、新しい詳細情報でフィールドを更新します。
  • 複数のリポジトリーを同じ構成に関連付ける場合、新規ソース・リポジトリーを追加する場合、または同じソース・リポジトリーの新規 Git 参照詳細を追加する場合は、新規サブスクリプションを作成できます。 サブスクリプションを作成] をクリックし、新しいサブスクリプションの詳細を記入してください。 少数の詳細のみが変更された新規サブスクリプションを作成する場合は、 「複製」 オプションを使用して、すべてのフィールドに既存のサブスクリプションのプロパティーを自動入力し、変更するフィールドを変更することができます。
  • サブスクリプションを削除するには、 「削除」 オプションを使用します。

コンソールからのサブスクリプションの更新

Satellite コンソールを使用して、設定を更新してください。

  1. IBM Cloud 資格情報を使用して Satellite 構成 UI にログインします。

  2. 更新したい構成を選択してください。

  3. 更新するサブスクリプションの行のオーバーフロー・メニューをクリックし、 「編集」 を選択します。

  4. 「サブスクリプションの編集」 ページで、変更を行い、 「保存」 をクリックします。

CLI を使用した Satellite 構成の更新

Satellite のコマンド用CLIプラグインを使用して、設定を更新してください。 新規ファイルを使用するように構成を更新する場合は、新規ファイルを指すようにサブスクリプションを更新できます。

  1. リモート・リポジトリー内の新しい 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 参照のタイプを入力します。 有効な値は、branchcommittag、および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.
    
  2. コンソールからの Satellite 構成の作成の手順 5 に従って、Kubernetes リソースのロールアウト状況を確認します。