1.2. Red Hat Developer Hub Operator を使用したカスタム設定での Developer Hub の実行
Developer Hub Operator を使用してカスタム設定で Red Hat Developer Hub を実行するには、以下のような Backstage カスタムリソースを作成します。
- カスタム config map にプロビジョニングされたファイルをマウントする。
- カスタムシークレットでプロビジョニングされた環境変数を挿入する。
前提条件
-
OpenShift CLI (
oc
) を使用して、Developer Hub インスタンスを格納するための OpenShift Container Platform クラスターに開発者権限でアクセスできる。 - OpenShift Container Platform 管理者により OpenShift Container Platform に Red Hat Developer Hub Operator がインストールされている。
-
<my-rhdh-project>
プロジェクトにカスタム config map とシークレットをプロビジョニングしている。
手順
my-rhdh-custom-resource.yaml
ファイルで Backstage カスタムリソースを作成し、カスタム config map とシークレットを使用します。例1.1 最小の
my-rhdh-custom-resource.yaml
カスタムリソースの例apiVersion: rhdh.redhat.com/v1alpha3 kind: Backstage metadata: name: my-rhdh-custom-resource spec: application: appConfig: mountPath: /opt/app-root/src configMaps: - name: my-rhdh-app-config extraEnvs: secrets: - name: my-rhdh-secrets extraFiles: mountPath: /opt/app-root/src replicas: 1 route: enabled: true database: enableLocalDb: true
例1.2 動的プラグインおよび RBAC ポリシー config map、および外部の PostgreSQL データベースシークレットを含む
my-rhdh-custom-resource.yaml
カスタムリソースの例。apiVersion: rhdh.redhat.com/v1alpha3 kind: Backstage metadata: name: <my-rhdh-custom-resource> spec: application: appConfig: mountPath: /opt/app-root/src configMaps: - name: my-rhdh-app-config - name: rbac-policies dynamicPluginsConfigMapName: dynamic-plugins-rhdh extraEnvs: secrets: - name: my-rhdh-secrets - name: my-rhdh-database-secrets extraFiles: mountPath: /opt/app-root/src secrets: - name: my-rhdh-database-certificates-secrets key: postgres-crt.pem, postgres-ca.pem, postgres-key.key replicas: 1 route: enabled: true database: enableLocalDb: false
- 必須フィールド:
- 必須フィールドはありません。空の Backstage カスタムリソースを作成し、デフォルト設定で Developer Hub を実行できます。
- オプションのフィールド:
spec.application.appConfig.configMaps
- config map 名のリストを入力します。
my-rhdh-app-config
config map のファイルをマウントします。spec: application: appConfig: mountPath: /opt/app-root/src configMaps: - name: my-rhdh-app-config
例1.3
my-rhdh-app-config
およびrbac-policies
config map にファイルをマウントします。spec: application: appConfig: mountPath: /opt/app-root/src configMaps: - name: my-rhdh-app-config - name: rbac-policies
spec.application.extraEnvs.envs
必要に応じて、プロキシー環境変数 など、シークレットではない追加の環境変数を入力します。
例1.4
HTTP_PROXY
、HTTPS_PROXY
、およびNO_PROXY
環境変数を注入します。spec: application: extraEnvs: envs: - name: HTTP_PROXY value: 'http://10.10.10.105:3128' - name: HTTPS_PROXY value: 'http://10.10.10.106:3128' - name: NO_PROXY value: 'localhost,example.org'
spec.application.extraEnvs.secrets
環境変数のシークレット名リストを入力します。
例1.5 環境変数を
my-rhdh-secrets
シークレットに注入します。spec: application: extraEnvs: secrets: - name: my-rhdh-secrets
例1.6
my-rhdh-secrets
およびmy-rhdh-database-secrets
シークレットに環境変数を注入します。spec: application: extraEnvs: secrets: - name: my-rhdh-secrets - name: my-rhdh-database-secrets
spec.application.extraFiles.secrets
証明書ファイルのシークレット名とファイルのリストを入力します。
my-rhdh-database-certificates-secrets
シークレットに含まれるpostgres-crt.pem
、postgres-ca.pem
、およびpostgres-key.key
ファイルをマウントします。spec: application: extraFiles: mountPath: /opt/app-root/src secrets: - name: my-rhdh-database-certificates-secrets key: postgres-crt.pem, postgres-ca.pem, postgres-key.key
spec.database.enableLocalDb
ローカルの PostgreSQL データベースを有効または無効にします。
ローカルの PostgreSQL データベース生成を無効にして、外部の postgreSQL データベースを使用します。
spec: database: enableLocalDb: false
開発環境で、ローカルの PostgreSQL データベースを使用します。
spec: database: enableLocalDb: true
spec.deployment
- 任意で デプロイメント設定を入力します。
Backstage カスタムリソースを適用して、Developer Hub インスタンスを起動または更新します。
$ oc apply --filename=my-rhdh-custom-resource.yaml --namespace=my-rhdh-project
1.2.1. Red Hat Developer Hub Operator を使用したカスタム設定での追加ファイルのマウント
Developer Hub Operator を使用して、ConfigMap や Secret などの追加ファイルをコンテナー内の任意の場所にマウントできます。
mountPath
フィールドで、ConfigMap または Secret をマウントする場所を指定します。マウントの動作は、subPath
を含めるか除外するかに関係なく、key
または mountPath
フィールドの指定によって変わります。
-
key
とmountPath
が指定されていない場合: 各キーまたは値が、subPath
を使用してfilename
またはコンテンツとしてマウントされます。 -
key
がmountPath
の有無にかかわらず指定されている場合: 指定されたキーまたは値が、subPath
を使用してマウントされます。 -
mountPath
のみが指定されている場合: すべてのキーまたは値を含むディレクトリーが、subPath
を使用せずにマウントされます。
-
OpenShift Container Platform は、
subPath
を使用してマウントされたボリュームを自動的に更新しません。デフォルトでは、RHDH Operator がこれらの ConfigMap または Secret を監視し、変更が発生したときに RHDH Pod を更新します。 - セキュリティー上の理由から、Red Hat Developer Hub は Operator サービスアカウントにシークレットの読み取りアクセス権を付与しません。そのため、mountPath と key の両方を指定せずに Secret からファイルをマウントすることはできません。
前提条件
-
OpenShift CLI (
oc
) を使用して、Developer Hub インスタンスが含まれる OpenShift Container Platform クラスターにアクセスするための開発者権限がある。 - OpenShift Container Platform 管理者により OpenShift Container Platform に Red Hat Developer Hub Operator がインストールされている。
手順
OpenShift Container Platform で、次の YAML コードを使用して ConfigMap または Secret を作成します。
例1.7 最小限の
my-project-configmap
ConfigMap の例apiVersion: v1 kind: ConfigMap metadata: name: my-project-configmap data: file11.txt: | My file11 content file 12.txt: | My file12 content
例1.8 最小限の
my-rhdh-secrets
シークレットの例apiVersion: v1 kind: Secret metadata: name: my-rhdh-secrets StringData: secret11.txt: | secret-content
詳細は、カスタム Red Hat Developer Hub 設定のプロビジョニングおよび使用 を参照してください。
configMaps name
の値を ConfigMap の名前に設定するか、secrets name
の値をBackstage
CR の Secret の名前に設定します。以下に例を示します。spec: application: extraFiles: mountPath: /my/path configMaps: - name: my-project-configmap key: file12.txt mountPath: /my/my-rhdh-config-map/path secrets: - name: my-rhdh-secrets key: secret11.txt mountPath: /my/my-rhdh-secret/path