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 Hat
の Black Belt
チームの記事を元に、日本向けにアレンジを加えてます。
2024/07/31 追記
この手順書で使われている Red Hat
Black Belt
チームの作成した terraform
サンプルは、ROSA Classic
と ROSA 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 を取得します。以下の部分をコピーします。
取得した 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