6.2. 設定
6.2.1. OpenShift ルートの表示
OpenShift ルートを表示するには、クラスターロールのルートリソースへの読み取りアクセス権を付与する必要があります。
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: backstage-read-only rules: ... - apiGroups: - route.openshift.io resources: - routes verbs: - get - list
また、app-config.yaml
ファイルの kubernetes.customResources
プロパティーにも以下を追加する必要があります。
kubernetes: ... customResources: - group: 'route.openshift.io' apiVersion: 'v1' plural: 'routes'
6.2.2. Pod ログの表示
Pod ログを表示するには、ClusterRole
に次の権限を付与する必要があります。
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: backstage-read-only rules: ... - apiGroups: - '' resources: - pods - pods/log verbs: - get - list - watch
6.2.3. Tekton PipelineRuns の表示
Tekton PipelineRuns を表示するには、ClusterRole
の pipelines
、pipelinesruns
、taskruns
リソースへの読み取りアクセス権を付与する必要があります。
... apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: backstage-read-only rules: ... - apiGroups: - tekton.dev resources: - pipelines - pipelineruns - taskruns verbs: - get - list
サイドパネルで Tekton PipelineRuns リストを表示し、Topology ノードデコレーターで最新の PipelineRuns ステータスを表示するには、app-config.yaml
ファイルの kubernetes.customResources
プロパティーに次のコードを追加する必要があります。
kubernetes: ... customResources: - group: 'tekton.dev' apiVersion: 'v1' plural: 'pipelines' - group: 'tekton.dev' apiVersion: 'v1' plural: 'pipelineruns' - group: 'tekton.dev' apiVersion: 'v1' plural: 'taskruns'
6.2.4. 仮想マシンの表示
仮想マシンを表示するには、Kubernetes クラスターに OpenShift Virtualization Operator をインストールして設定する必要があります。ClusterRole
の VirtualMachines
リソースへの読み取りアクセス権も付与する必要があります。
... apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: backstage-read-only rules: ... - apiGroups: - kubevirt.io resources: - virtualmachines - virtualmachineinstances verbs: - get - list
トポロジープラグインで仮想マシンノードを表示するには、app-config.yaml
ファイルの kubernetes.customResources
プロパティーに次のコードを追加する必要があります。
kubernetes: ... customResources: - group: 'kubevirt.io' apiVersion: 'v1' plural: 'virtualmachines' - group: 'kubevirt.io' apiVersion: 'v1' plural: 'virtualmachineinstances'
6.2.5. ソースコードエディターの有効化
ソースコードエディターを有効にするには、次のサンプルコードに示すように、ClusterRole
の CheClusters リソースへの読み取りアクセス権を付与する必要があります。
... apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: backstage-read-only rules: ... - apiGroups: - org.eclipse.che resources: - checlusters verbs: - get - list
ソースコードエディターを使用するには、app-config.yaml
ファイルの kubernetes.customResources
プロパティーに次の設定を追加する必要があります。
kubernetes: ... customResources: - group: 'org.eclipse.che' apiVersion: 'v2' plural: 'checlusters'
6.2.6. ラベルとアノテーション
6.2.6.1. ソースコードエディターまたはソースへのリンク
ソースコードエディターを使用して、関連付けられているアプリケーションの Git リポジトリーに移動するには、デプロイメントなどのワークロードリソースに次のアノテーションを追加します。
annotations: app.openshift.io/vcs-uri: <GIT_REPO_URL>
特定のブランチに移動するには、次のアノテーションを追加します。
annotations: app.openshift.io/vcs-ref: <GIT_REPO_BRANCH>
Red Hat OpenShift Dev Spaces がインストールおよび設定されており、git URL アノテーションもワークロード YAML ファイルに追加されている場合は、編集コードデコレーターをクリックすると、Red Hat OpenShift Dev Spaces インスタンスにリダイレクトされます。
OCP Git インポートフローを使用してアプリケーションをデプロイする場合は、インポートフローによってラベルが追加されるため、独自に追加する必要はありません。それ以外の場合は、ワークロード YAML ファイルにラベルを手動で追加する必要があります。
デコレーターを使用してアクセスする編集 URL を含む app.openshift.io/edit-url
アノテーションを追加することもできます。
6.2.6.2. エンティティーアノテーション/ラベル
RHDH がエンティティーに Kubernetes コンポーネントがあることを検出するには、エンティティーの catalog-info.yaml
に次のアノテーションを追加します。
annotations: backstage.io/kubernetes-id: <BACKSTAGE_ENTITY_NAME>
Kubernetes プラグインが要求されたエンティティーから Kubernetes リソースを取得できるように、次のラベルがリソースに追加されます。リソースに次のラベルを追加します。
labels: backstage.io/kubernetes-id: <BACKSTAGE_ENTITY_NAME>`
ラベルセレクターを使用する場合は、上記のラベルがリソースに存在する必要があります。
6.2.6.3. namespace アノテーション
定義された namespace を使用して Kubernetes リソースを識別するには、backstage.io/kubernetes-namespace
アノテーションを追加します。
annotations: backstage.io/kubernetes-namespace: <RESOURCE_NS>
backstage.io/kubernetes-namespace
アノテーションが catalog-info.yaml
ファイルに追加されている場合、ソースコードエディターを使用して Red Hat OpenShift Dev Spaces インスタンスにアクセスすることはできません。
インスタンス URL を取得するには、CheCluster カスタムリソース (CR) が必要です。CheCluster CR は openshift-devspaces namespace に作成されるため、namespace のアノテーション値が openshift-devspaces でない場合、インスタンス URL は取得されません。
6.2.6.4. ラベルセレクタークエリーアノテーション
RHDH が Kubernetes リソースを見つけるために使用する独自のカスタムラベルを作成できます。ラベルセレクターは ID アノテーションよりも優先されます。
annotations: backstage.io/kubernetes-label-selector: 'app=my-app,component=front-end'
Red Hat Dev Spaces が設定されているときに複数のエンティティーがあり、複数のエンティティーで Red Hat Dev Spaces インスタンスにリダイレクトする編集コードデコレーターをサポートする必要がある場合は、各エンティティーの catalog-info.yaml ファイルに backstage.io/kubernetes-label-selector アノテーションを追加できます。
annotations: backstage.io/kubernetes-label-selector: 'component in (<BACKSTAGE_ENTITY_NAME>,che)'
以前のラベルセレクターを使用している場合は、Kubernetes プラグインが要求されたエンティティーから Kubernetes リソースを取得できるように、次のラベルをリソースに追加する必要があります。
labels: component: che # add this label to your che cluster instance labels: component: <BACKSTAGE_ENTITY_NAME> # add this label to the other resources associated with your entity
エンティティーを区別するために、一意のラベルを使用してラベルセレクター用の独自のカスタムクエリーを作成することもできます。ただし、CheCluster インスタンスを含むエンティティーに関連付けられたリソースにこれらのラベルを確実に追加する必要があります。
6.2.6.5. ノードに表示されるアイコン
トポロジーノードにランタイムアイコンを表示するには、デプロイメントなどのワークロードリソースに次のラベルを追加します。
labels: app.openshift.io/runtime: <RUNTIME_NAME>
あるいは、次のラベルを含めてランタイムアイコンを表示することもできます。
labels: app.kubernetes.io/name: <RUNTIME_NAME>
<RUNTIME_NAME>
でサポートされる値は次のとおりです。
- django
- dotnet
- drupal
- go-gopher
- golang
- grails
- jboss
- jruby
- js
- nginx
- nodejs
- openjdk
- perl
- phalcon
- php
- python
- quarkus
- rails
- redis
- rh-spring-boot
- rust
- java
- rh-openjdk
- ruby
- spring
- spring-boot
その他の値の場合、ノードのアイコンはレンダリングされません。
6.2.6.6. アプリケーションのグループ化
ビジュアルグループ内のデプロイメントや Pod などのワークロードリソースを表示するには、次のラベルを追加します。
labels: app.kubernetes.io/part-of: <GROUP_NAME>
6.2.6.7. ノードコネクター
ビジュアルコネクターを使用してデプロイメントや Pod などのワークロードリソースを表示するには、次のアノテーションを追加します。
annotations: app.openshift.io/connects-to: '[{"apiVersion": <RESOURCE_APIVERSION>,"kind": <RESOURCE_KIND>,"name": <RESOURCE_NAME>}]'
ラベルとアノテーションの詳細は、Guidelines for labels and annotations for OpenShift applications を参照してください。