第3章 開発者ワークスペース
Red Hat CodeReady Workspaces は、開発者ワークスペースに、アプリケーションのコード、ビルド、テスト、実行、およびデバッグに必要なすべてのものを提供します。これを許可するために、開発者ワークスペースは 4 つの主なコンポーネントを提供します。
- プロジェクトのソースコード。
- Web ベースの統合開発環境 (IDE)
- 開発者がプロジェクトで作業するために必要なツールの依存関係。
- アプリケーションランタイム: アプリケーションの実稼働環境での実行に使用される環境のレプリカ。
Pod は CodeReady Workspaces ワークスペースの各コンポーネントを管理します。そのため、CodeReady Workspaces ワークスペースで実行されているすべてのものは、コンテナー内で実行されます。これにより、CodeReady Workspaces ワークスペースに高い移植性を持たせることができます。
組み込みブラウザーベースの IDE は、CodeReady Workspaces ワークスペースで実行しているすべてについてのアクセスポイントです。これにより、CodeReady Workspaces ワークスペースの共有が簡単になります。
デフォルトでは、1 度に 1 つのワークスペースのみを実行できます。ユーザーが実行できる同時ワークスペースの数を増やすには、checluster にパッチを適用します。
oc patch checluster codeready-workspaces -n openshift-workspaces --type=merge \ -p '{ "spec": { "server": { "customCheProperties": { "CHE_LIMITS_USER_WORKSPACES_RUN_COUNT": "-1" } } } }'
$ oc patch checluster codeready-workspaces -n openshift-workspaces --type=merge \
-p '{ "spec": { "server": { "customCheProperties": { "CHE_LIMITS_USER_WORKSPACES_RUN_COUNT": "-1" } } } }'
詳細は、ユーザーワークスペースの制限について参照してください。
機能 | 従来の IDE ワークスペース | Red Hat CodeReady Workspaces ワークスペース |
---|---|---|
設定およびインストールが必要 | Yes | No |
組み込みツール | 部分的。IDE プラグインには設定が必要です。依存関係にはインストールと設定が必要です。例: JDK、Maven、Node | Yesプラグインは、それらの依存関係を提供します。 |
アプリケーションランタイムが指定される | No。開発者はこれを個別に管理する必要があります。 | Yesアプリケーションランタイムはワークスペースで複製されます。 |
共有可能 | No。または容易ではない | Yes開発者ワークスペースは URL で共有可能です。 |
バージョン管理可能 | No | Yesdevfile はプロジェクトのソースコードと共に存在します。 |
どこからでもアクセス可能 | No。インストールが必要です。 | Yesブラウザーのみが必要です。 |
CodeReady Workspaces ワークスペースを起動するには、以下のオプションを選択できます。
Dashboard を使用して CodeReady Workspaces 2.6 を検出します。
CodeReady Workspaces 2.6 ワークスペースの起動に推奨される方法として devfile を使用します。
CodeReady Workspaces 2.6 ワークスペースと対話に推奨される方法としてブラウザーベースの IDE を使用します。CodeReady Workspaces 2.6 ワークスペースと対話する別の方法については、「ワークスペースへのリモートアクセス」 を参照してください。
3.1. devfile を使用したワークスペースの設定 リンクのコピーリンクがクリップボードにコピーされました!
CodeReady Workspaces ワークスペースを迅速かつ簡単に設定するには、devfile を使用します。devfile の概要とその使用方法については、本セクションの手順を参照してください。
3.1.1. devfile とは リンクのコピーリンクがクリップボードにコピーされました!
devfile は、開発環境を記述し、定義するファイルです。
- ソースコード。
- ブラウザー IDE ツールやアプリケーションランタイムなどの開発コンポーネント。
- 事前定義コマンドの一覧。
- クローン作成するプロジェクト。
devfile は、CodeReady Workspaces が消費し、複数のコンテナーで構成されるクラウドワークスペースに変換する YAML ファイルです。devfile はリモートまたはローカルに保存できます。以下のような各種の方法で実行できます。
- git リポジトリーのルートフォルダー、または機能ブランチを使用。
- HTTP 経由でアクセス可能な一般にアクセスできる Web サーバーを使用。
-
ローカルでファイルとして使用、または
crwctl
を使用してデプロイ。 - devfile のコレクション (devfile レジストリー として知られる) を使用。
ワークスペースの作成時に、CodeReady Workspaces はその定義を使用してすべてを開始し、必要なツールおよびアプリケーションランタイムのすべてのコンテナーを実行します。また、CodeReady Workspaces はファイルシステムボリュームをマウントして、ソースコードをワークスペースで利用できるようにします。
devfile は、プロジェクトのソースコードでバージョン管理できます。ワークスペースで古いメンテナンスブランチを修正する必要がある場合、プロジェクトの devfile は、ワークスペースの定義を古いブランチでの機能を開始するために必要な各種ツールと依存関係と共に提供します。これを使用してワークスペースをオンデマンドでインスタンス化します。
CodeReady Workspaces は、ワークスペースで使用するツールと共に devfile の最新の状態を維持します。
- パス、git の場所、ブランチなどのプロジェクトの要素。
- ビルド、実行、テスト、デバッグなどの日次タスクを実行するためのコマンド。
- アプリケーションの実行に必要なコンテナーイメージを含むランタイム環境。
- 開発者がワークスペースで使用するツール、IDE 機能、ヘルパーが含まれる Che-Theia プラグイン (例: Git、Java サポート、SonarLint、およびプルリクエスト)。
3.1.2. Git リポジトリーのデフォルトブランチでのワークスペースの作成 リンクのコピーリンクがクリップボードにコピーされました!
Git ソースリポジトリーに保存される devfile を参照して、CodeReady Workspaces ワークスペースを作成できます。次に、CodeReady Workspaces インスタンスは検出された devfile.yaml ファイルを使用して factory URL (/f?url=
) API を使用してワークスペースをビルドします。
前提条件
- Red Hat CodeReady Workspaces の実行中のインスタンス。Red Hat CodeReady Workspaces のインスタンスをインストールするには、https://access.redhat.com/documentation/en-us/red_hat_codeready_workspaces/2.6/html-single/installation_guide/index#installing-codeready-workspaces_crw を参照してください。
-
devfile.yaml
または.devfile.yaml
ファイルは、HTTPS で利用可能な Git リポジトリーのルートフォルダーにあります。devfile の作成および使用についての詳細は、「devfile を使用してワークスペースを移植可能にする」 を参照してください。
手順
URL \https://codeready-<openshift_deployment_name>.<domain_name>/f?url=https://<GitRepository>
を開いてワークスペースを実行します。
例
https://che.openshift.io/f?url=https://github.com/eclipse/che
https://che.openshift.io/f?url=https://github.com/eclipse/che
3.1.3. Git リポジトリーの機能ブランチでのワークスペースの作成 リンクのコピーリンクがクリップボードにコピーされました!
CodeReady Workspaces ワークスペースは、ユーザーの選択する機能ブランチの Git ソースリポジトリーに保存される devfile を参照して作成できます。次に CodeReady Workspaces インスタンスは検出された devfile を使用してワークスペースをビルドします。
前提条件
- Red Hat CodeReady Workspaces の実行中のインスタンス。Red Hat CodeReady Workspaces のインスタンスをインストールするには、https://access.redhat.com/documentation/en-us/red_hat_codeready_workspaces/2.6/html-single/installation_guide/index#installing-codeready-workspaces_crw を参照してください。
-
devfile.yaml
または.devfile.yaml
ファイルは、HTTPS 経由でアクセス可能なユーザーが選択する特定のブランチの、Git リポジトリーのルートフォルダーにあります。devfile の作成および使用についての詳細は、「devfile を使用してワークスペースを移植可能にする」 を参照してください。
手順
URL \https://codeready-<openshift_deployment_name>.<domain_name>/f?url=<GitHubBranch>
を開いてワークスペースを実行します。
例
以下の URL 形式を使用して、che.openshift.io でホストされる実験的な quarkus-quickstarts ブランチを開きます。
https://che.openshift.io/f?url=https://github.com/maxandersen/quarkus-quickstarts/tree/che
https://che.openshift.io/f?url=https://github.com/maxandersen/quarkus-quickstarts/tree/che
3.1.4. HTTP を使用した一般にアクセス可能なスタンドアロン devfile でのワークスペースの作成 リンクのコピーリンクがクリップボードにコピーされました!
ワークスペースは、devfile、devfile の未加工コンテンツを参照する URL を使用して作成できます。次に CodeReady Workspaces インスタンスは検出された devfile を使用してワークスペースをビルドします。
前提条件
- Red Hat CodeReady Workspaces の実行中のインスタンス。Red Hat CodeReady Workspaces のインスタンスをインストールするには、https://access.redhat.com/documentation/en-us/red_hat_codeready_workspaces/2.6/html-single/installation_guide/index#installing-codeready-workspaces_crw を参照してください。
-
一般にアクセス可能なスタンドアロン
devfile.yaml
ファイル。devfile の作成および使用についての詳細は、「devfile を使用してワークスペースを移植可能にする」 を参照してください。
手順
-
URL
\https://codeready-<openshift_deployment_name>.<domain_name>/f?url=https://<yourhosturl>/devfile.yaml
を開いてワークスペースを実行します。
例
https://che.openshift.io/f?url=https://gist.githubusercontent.com/themr0c/ef8e59a162748a8be07e900b6401e6a8/raw/8802c20743cde712bbc822521463359a60d1f7a9/devfile.yaml
https://che.openshift.io/f?url=https://gist.githubusercontent.com/themr0c/ef8e59a162748a8be07e900b6401e6a8/raw/8802c20743cde712bbc822521463359a60d1f7a9/devfile.yaml
3.1.5. factory パラメーターを使用した devfile 値の上書き リンクのコピーリンクがクリップボードにコピーされました!
リモート devfile の以下のセクションにある値は、特別に作成される追加の factory パラメーターを使用して上書きできます。
-
apiVersion
-
metadata
-
projects
-
attributes
前提条件
- Red Hat CodeReady Workspaces の実行中のインスタンス。Red Hat CodeReady Workspaces のインスタンスをインストールするには、https://access.redhat.com/documentation/en-us/red_hat_codeready_workspaces/2.6/html-single/installation_guide/index#installing-codeready-workspaces_crw を参照してください。
-
一般にアクセス可能なスタンドアロン
devfile.yaml
ファイル。devfile の作成および使用についての詳細は、「devfile を使用してワークスペースを移植可能にする」 を参照してください。
手順
-
URL
\https://codeready-<openshift_deployment_name>.<domain_name>/f?url=https://<hostURL>/devfile.yaml&override.<parameter.path>=<value>
に移動してワークスペースを開きます。
generateName
プロパティーを上書きする例
以下の初期 devfile について考えてみましょう。
generateName
値を追加または上書きするには、以下の factory URL を使用します。
https://che.openshift.io/f?url=https://gist.githubusercontent.com/themr0c/ef8e59a162748a8be07e900b6401e6a8/raw/8802c20743cde712bbc822521463359a60d1f7a9/devfile.yaml&override.metadata.generateName=myprefix
https://che.openshift.io/f?url=https://gist.githubusercontent.com/themr0c/ef8e59a162748a8be07e900b6401e6a8/raw/8802c20743cde712bbc822521463359a60d1f7a9/devfile.yaml&override.metadata.generateName=myprefix
作成されるワークスペースには、以下の devfile モデルがあります。
プロジェクトソースブランチプロパティーの上書き例
以下の初期 devfile について考えてみましょう。
ソースの branch
の値を追加または上書きするには、以下の factory URL を使用します。
https://che.openshift.io/f?url=https://gist.githubusercontent.com/themr0c/ef8e59a162748a8be07e900b6401e6a8/raw/8802c20743cde712bbc822521463359a60d1f7a9/devfile.yaml&override.projects.web-java-spring-petclinic.source.branch=1.0.x
https://che.openshift.io/f?url=https://gist.githubusercontent.com/themr0c/ef8e59a162748a8be07e900b6401e6a8/raw/8802c20743cde712bbc822521463359a60d1f7a9/devfile.yaml&override.projects.web-java-spring-petclinic.source.branch=1.0.x
作成されるワークスペースには、以下の devfile モデルがあります。
属性値の上書きまたは作成例
以下の初期 devfile について考えてみましょう。
persistVolumes
属性値を追加または上書きするには、以下の factory URL を使用します。
https://che.openshift.io/f?url=https://gist.githubusercontent.com/themr0c/ef8e59a162748a8be07e900b6401e6a8/raw/8802c20743cde712bbc822521463359a60d1f7a9/devfile.yaml&override.attributes.persistVolumes=true
https://che.openshift.io/f?url=https://gist.githubusercontent.com/themr0c/ef8e59a162748a8be07e900b6401e6a8/raw/8802c20743cde712bbc822521463359a60d1f7a9/devfile.yaml&override.attributes.persistVolumes=true
作成されるワークスペースには、以下の devfile モデルがあります。
属性を上書きする場合、attributes
キーワードをベースとするものはすべて属性名として解釈されるため、ユーザーはドットで区切られた名前を使用することができます。
https://che.openshift.io/f?url=https://gist.githubusercontent.com/themr0c/ef8e59a162748a8be07e900b6401e6a8/raw/8802c20743cde712bbc822521463359a60d1f7a9/devfile.yaml&override.attributes.dot.name.format.attribute=true
https://che.openshift.io/f?url=https://gist.githubusercontent.com/themr0c/ef8e59a162748a8be07e900b6401e6a8/raw/8802c20743cde712bbc822521463359a60d1f7a9/devfile.yaml&override.attributes.dot.name.format.attribute=true
作成されるワークスペースには、以下の devfile モデルがあります。
3.1.6. crwctl およびローカル devfile を使用したワークスペースの作成 リンクのコピーリンクがクリップボードにコピーされました!
crwctl
ツールにローカルに保存された devfile を参照させて、CodeReady Workspaces ワークスペースを作成できます。次に CodeReady Workspaces インスタンスは検出された devfile を使用してワークスペースをビルドします。
前提条件
- Red Hat CodeReady Workspaces の実行中のインスタンス。Red Hat CodeReady Workspaces のインスタンスをインストールするには、https://access.redhat.com/documentation/en-us/red_hat_codeready_workspaces/2.6/html-single/installation_guide/index#installing-codeready-workspaces_crw を参照してください。
- CodeReady Workspaces CLI 管理ツール。https://access.redhat.com/documentation/en-us/red_hat_codeready_workspaces/2.6/html-single/installation_guide/index#using-the-crwctl-management-tool_crw を参照してください。
- devfile は、現在の作業ディレクトリー内のローカルファイルシステムで利用できます。devfile の作成および使用についての詳細は、「devfile を使用してワークスペースを移植可能にする」 を参照してください。
Red Hat CodeReady Workspaces にログインしている必要があります。「crwctl を使用した CodeReady Workspace へのログイン」を参照してください。
例
devfile.yaml
ファイルを GitHub リポジトリーから現行の作業ディレクトリーにダウンロードします。
手順
-
以下のように、
crwctl
ツールにworkspace:create
パラメーターを指定して devfile からワークスペースを実行します。
crwctl workspace:create --name=<WORKSPACE_NAME> \ --devfile=devfile.yaml --start \ -n openshift-workspaces
$ crwctl workspace:create --name=<WORKSPACE_NAME> \
--devfile=devfile.yaml --start \
-n openshift-workspaces
- 1
- 作成するワークスペース名
--devfile
フラグを省略すると、crwctl は現行ディレクトリーで、ワークスペースの作成に使用する devfile.yaml
または devfile.yml
ファイルを検索します。
3.1.7. ユーザーによるワークスペースのデプロイメントラベルおよびアノテーションの定義を許可する リンクのコピーリンクがクリップボードにコピーされました!
本セクションでは、factory パラメーターを使用してワークスペースのデプロイメントのラベルとアノテーションをカスタマイズする方法を説明します。
前提条件
- Red Hat CodeReady Workspaces の実行中のインスタンス。Red Hat CodeReady Workspaces のインスタンスをインストールするには、https://access.redhat.com/documentation/en-us/red_hat_codeready_workspaces/2.6/html-single/installation_guide/index#installing-codeready-workspaces_crw を参照してください。
-
一般にアクセス可能なスタンドアロン
devfile.yaml
ファイル。devfile の作成および使用についての詳細は、「devfile を使用してワークスペースを移植可能にする」 を参照してください。
手順
-
URL
\https://codeready-<openshift_deployment_name>.<domain_name>/f?url=https://<hostURL>/devfile.yaml&workspaceDeploymentLabels=<url_encoded_comma_separated_key_values>&workspaceDeploymentAnnotations=<url_encoded_comma_separated_key_values override>
に移動してワークスペースを開きます。
deployment labels
を上書きする例
追加する以下のラベルについて検討します。
ike.target=preference-v1 ike.session=test
ike.target=preference-v1
ike.session=test
ラベルを追加または上書きするには、以下のファクトリー URL を使用します。
https://che.openshift.io/f?url=https://gist.githubusercontent.com/themr0c/ef8e59a162748a8be07e900b6401e6a8/raw/8802c20743cde712bbc822521463359a60d1f7a9/devfile.yaml&workspaceDeploymentLabels=ike.target%3Dpreference-v1%2Cike.session%3Dtest
https://che.openshift.io/f?url=https://gist.githubusercontent.com/themr0c/ef8e59a162748a8be07e900b6401e6a8/raw/8802c20743cde712bbc822521463359a60d1f7a9/devfile.yaml&workspaceDeploymentLabels=ike.target%3Dpreference-v1%2Cike.session%3Dtest
作成されるワークスペースには、以下のデプロイメントラベルが含まれます。
deployment annotations
を上書きする例
追加する以下のアノテーションについて検討します。
ike.A1=preference-v1 ike.A=test
ike.A1=preference-v1
ike.A=test
アノテーションを追加または上書きするには、以下のファクトリー URL を使用します。
https://che.openshift.io/f?url=https://gist.githubusercontent.com/themr0c/ef8e59a162748a8be07e900b6401e6a8/raw/8802c20743cde712bbc822521463359a60d1f7a9/devfile.yaml&workspaceDeploymentAnnotations=ike.A1%3Dpreference-v1%2Cike.A%3Dtest
https://che.openshift.io/f?url=https://gist.githubusercontent.com/themr0c/ef8e59a162748a8be07e900b6401e6a8/raw/8802c20743cde712bbc822521463359a60d1f7a9/devfile.yaml&workspaceDeploymentAnnotations=ike.A1%3Dpreference-v1%2Cike.A%3Dtest
生成されるワークスペースには、以下のデプロイメントアノテーションが含まれます。