6.3. 専用の namespace の設定
Bare Metal as a Service (BMaaS) ワークロードと OpenShift Container Platform インフラストラクチャー間の偶発的な干渉を防ぐには、専用の namespace をセットアップします。すべての BMaaS プロジェクトに対してこの手順を繰り返します。
前提条件
- ID プロバイダーを設定 した。
手順
アイデンティティープロバイダーで BMaaS
bmadminユーザーを設定し、OpenShift にシークレットを作成します。アイデンティティープロバイダーに
bmadminユーザーを作成します。たとえば、htpasswdアイデンティティープロバイダーを使用する場合は、次のコマンドを実行します。$ htpasswd -c -B -b ./users_htpasswd <username> <password>- <username>
-
アイデンティティープロバイダーのユーザー名。
<username>は、希望のユーザー名に置き換えます。この例ではbmadminを使用します。 - <password>
-
ユーザーのパスワード。
<password>は、安全なパスワードに置き換えます。
次のコマンドを実行して、アイデンティティープロバイダー設定を保存するためのシークレットを
openshift-confignamespace に作成します。$ oc create secret generic <identity_provider_arguments> -n openshift-configたとえば、
htpasswdアイデンティティープロバイダーを使用する場合は、次のコマンドを実行します。$ oc create secret generic htpass-secret --from-file=htpasswd=users_htpasswd -n openshift-config- <identity_provider_arguments>
-
アイデンティティープロバイダーシークレットに固有の引数。
<identity_provider_arguments>は、ID プロバイダーの適切な引数に置き換えます。
アイデンティティープロバイダーを使用するように OAuth を設定します。
次のコマンドを実行して OAuth リソースを編集します。
$ oc edit oauth clusterエディターが開き、Oauth リソースが表示されます。
アイデンティティープロバイダーの設定を
spec.identityProvidersリストに追加します。Expand 表6.1 アイデンティティープロバイダーの設定例 型 例 htpasswd
# ... - name: my_bmaas_provider mappingMethod: claim type: htpasswd htpasswd: fileData: name: <secret> # ...LDAP
# ... - name: my_bmaas_provider mappingMethod: claim type: ldap ldap: attributes: id: - dn email: - mail name: - cn preferredUsername: - uid # ...GitHub
# ... - name: my_bmaas_provider mappingMethod: claim type: GitHub github: ca: name: ca-config-map clientID: {...} clientSecret: name: github-secret hostname: ... organizations: - myorganization1 - myorganization2 teams: - myorganization1/team-a - myorganization2/team-b # ...アイデンティティープロバイダーの詳細は、認証と認可 を参照してください。
- エディターを保存し、終了します。
次のコマンドを実行して、BMaaS
bmadminユーザーを作成します。$ oc create user <username>- <username>
-
ユーザー名。
<username>は、ユーザー名に置き換えます。次の例では、ユーザー名としてbmadminを使用します。
次のコマンドを実行して、BMaaS ホスト専用の
bmaasnamespace を作成します。$ oc new-project <namespace><namespace>-
<namespace> は、使用する namespace 名に置き換えます。この例では
bmaasを使用します。
次のコマンドを実行して、
bmaasnamespace の BMaaSbmadminユーザーにeditロールを割り当てます。$ oc adm policy add-role-to-user edit <username> -n bmaas次のコマンドを実行して、
baremetal-operatorリポジトリーをクローンし、ロールベースアクセス制御 (RBAC) のロール定義を取得します。$ git clone -b release-4.20 https://github.com/openshift/baremetal-operator.git追加するロールごとに、次のコマンドを実行して、リポジトリーから適切な RBAC ロール YAML ファイルを適用します。
$ oc apply -f baremetal-operator/config/base/rbac/<role_filename>.yaml次のコマンドを実行して、
bmaasnamespace 内の BMaaSbmadminユーザーにカスタム RBAC ロールを割り当てます。$ oc adm policy add-role-to-user <role_name> bmadmin -n bmaas次のコマンドを実行して、
bmadminユーザーとしてログインします。$ oc login <api_server_url>:6443<api_server_url>- Kubernetes API への URL。