1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Terraform を使って ROSA HCP をデプロイする ( Black Belt Sample 版)

Last updated at Posted at 2024-06-26

0.はじめに

ROSA には Classic ( Control Plane node がユーザーの AWS アカウント内に作られるもの) と、HCP (Hosted Control Plane: Compute Node だけがユーザーのAWSアカウントに作られるもの)の2種類のタイプがあります。

この記事は、ROSA HCP に関する記事です。
過去に ROSA クラスターを作成していない綺麗な環境での実行を想定しています。

(ROSA Classic を Terraform でインストールする記事はこちらです。)

ROSA は CLIでも作成できるのですが、Enterprise 向けの製品だけあって、オプションが山のようにあります。
Terraform を使う事で、いつも使うオプション構成で気軽にクラスターを作成したり、削除する事が可能です。

手順自体は、こちらRed HatBlack Belt チームの記事を元に、日本向けにアレンジを加えてます。

2024/07/31 追記
この手順書で使われている Red Hat Black Belt チームの作成した terraformサンプルは、ROSA ClassicROSA HCP の両方に対応しているなどやや複雑です。

今後は、ROSA HCP のクラスターがデフォルトになっていくので、これから ROSA をはじめるのであれば、こちら の公式ドキュメントの terraformサンプルをベースにした記事を参照するのをお勧めします。

1. 各種 CLI を準備する

・AWS CLI コマンド
・git コマンド
・terraform コマンド
・rosa / oc コマンド
・jq コマンド

が構成されている事が前提です。こちらの ページのガイドを参考にしてください。

また、クラスターを作成するために、トークンを Red Hat のサイトから取得する必要があります。アカウントの作成は無料になっているので、アカウントを持ってない場合は、こちらから作成しておきます。

2. ROSA HCP を有効化する

HCP をはじめて使う場合は、① AWS コンソールから ROSA HCP を有効化、② AWSアカウントとRed Hat アカウントへの紐付けを行う。という2つの手順を実行する必要があります。

こちら のページの「3. ROSA HCP の有効化」を実行してください。

3. サンプルの設定ファイルをダウンロードする

以下のコマンドでダウンロードできます。(terraform のテンプレートは Red Hat の Black Belt チーム(Technical Sales) によって開発されたサンプルで、製品ではありません)

git clone https://github.com/yuhkih/terraform-rosa

ダウンロードしたディレクトリに移動します。

cd terraform-rosa/

4. ROSA の token を取得してログインする。

ROSA クラスターを作成するための https://console.redhat.com/openshift/token から Token を取得します。以下の部分をコピーします。

image.png

取得した Token を変数にセットします。

rosa login --token="上記で取得した token の文字列" 

5. 作成する Cluster のパラメーターを設定する。

この Template のデフォルトは US 向けになっているので、幾つか変数を変更します。

変数の変更の仕方は2通りあり、1つは、variables.tf を直接編集する方法です。もう一つは、環境変数 で上書きする方法です(TF_VAR_変数名でも variables.tf の内容を実行時に上書きできます)

先ほどログイン時に使ったトークンが、ローカルの設定ファイルに保存されているので、それを環境変数にセットします。

export TF_VAR_token="$(jq -r .refresh_token ~/.config/ocm/ocm.json)"

クラスター名を設定します。

export TF_VAR_cluster_name="$(whoami)-hcp"

admin という名前の cluster-admins グループに所属する HTPasswd ユーザーが作成されます。admin 用のパスワードを設定します。

export TF_VAR_admin_password="$(whoami)-Passw0rd12345!"

developer という名前の、特にグループに所属しない汎用の HTPasswd ユーザーが作成されます。developer 用のパスワードを設定します。(developer を作成したくない場合は、パスワードを空にしてください)

export TF_VAR_developer_password="$(whoami)-Passw0rd12345!"

public クラスターを作成します。private にするとインターネットからアクセスできなくなるので、アクセス方法を別途準備する必要があります。

export TF_VAR_private=false

4.16.1 はこの記事作成時点での最新です。

export TF_VAR_ocp_version=4.16.1

HCP用なので true を設定します。

export TF_VAR_hosted_control_plane=true

デフォルでは USのリージョンに作られるので、東京リージョンに設定します。

export TF_VAR_region="ap-northeast-1"

6. ROSA Cluster の作成

terraform を初期化します。

terraform init

もし TF_VAR_<変数名> の環境変数で上書きするのではなく、variables.tfファイルを直接編集した場合は、validateで編集ミスが無いか確認します。

terraform validate

プランを作成します。

terraform plan -out rosa.plan

以下でクラスターが作成が開始されます。(途中で確認を求められるので yesと入力します)

terraform apply rosa.plan

途中経過のログが流れはじめ、20分ほど待つと完了するはずです。

7. ROSA Cluster の基本コマンド

ログイン

oc login $(terraform output -raw cluster_api_url) --username admin --password $TF_VAR_admin_password

コンソールの URL の表示 (CLIと同じ UserID/パスワードでログインできます)

oc whoami --show-console

8. ROSA クラスターの削除

以下で ROSA クラスターを削除できます。

terraform destroy
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?