This documentation is for a release that is no longer maintained
See documentation for the latest supported version.第8章 OpenShift との統合
8.1. OpenShift API を使用したワークスペースの管理 リンクのコピーリンクがクリップボードにコピーされました!
組織の OpenShift クラスターでは、OpenShift Dev Spaces ワークスペースは同じ名前の DevWorkspace カスタムリソースとして表されます。その結果、OpenShift Dev Spaces ダッシュボードに my-workspace という名前のワークスペースがある場合、クラスター上のユーザーのプロジェクトに my-workspace という名前の対応する DevWorkspace カスタムリソースがあります。
クラスター上の各 DevWorkspace カスタムリソースは OpenShift Dev Spaces ワークスペースを表すため、コマンドライン oc などのクライアントで OpenShift API を使用して OpenShift Dev Spaces ワークスペースを管理できます。
各 DevWorkspace カスタムリソースには、ワークスペース用に複製された Git リポジトリーの devfile から派生した詳細が含まれています。たとえば、devfile は、devfile コマンドとワークスペースコンテナー設定を提供する場合があります。
8.1.1. すべてのワークスペースの一覧表示 リンクのコピーリンクがクリップボードにコピーされました!
ユーザーは、コマンドラインを使用してワークスペースを一覧表示できます。
前提条件
-
クラスター上のプロジェクトで
DevWorkspaceリソースをgetするための権限を持つアクティブなocセッションです。CLI の使用方法 を参照してください。 クラスター上の関連する OpenShift Dev Spaces ユーザー namespace を把握している。
ヒントhttps://<openshift_dev_spaces_fqdn>/api/kubernetes/namespaceにアクセスして、OpenShift Dev Spaces ユーザー namespace をnameとして取得できます。クラスターの OpenShift Dev Spaces ユーザー namespace にいる。
ヒントOpenShift では、コマンドライン
ocツールを使用して、現在の namespace を表示したり、namespace に切り替えたり できます。
手順
ワークスペースを一覧表示するには、コマンドラインで次のように入力します。
oc get devworkspaces
$ oc get devworkspacesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例8.1 出力
NAMESPACE NAME DEVWORKSPACE ID PHASE INFO user1-dev spring-petclinic workspace6d99e9ffb9784491 Running https://url-to-workspace.com user1-dev golang-example workspacedf64e4a492cd4701 Stopped Stopped user1-dev python-hello-world workspace69c26884bbc141f2 Failed Container tooling has state CrashLoopBackOff
NAMESPACE NAME DEVWORKSPACE ID PHASE INFO user1-dev spring-petclinic workspace6d99e9ffb9784491 Running https://url-to-workspace.com user1-dev golang-example workspacedf64e4a492cd4701 Stopped Stopped user1-dev python-hello-world workspace69c26884bbc141f2 Failed Container tooling has state CrashLoopBackOffCopy to Clipboard Copied! Toggle word wrap Toggle overflow
このコマンドに --watch フラグを追加すると、PHASE の変更をライブで表示できます。
クラスターの管理権限を持つユーザーは、--all-namespaces フラグを含めることで、すべての OpenShift Dev Spaces ユーザーからのすべてのワークスペースを一覧表示できます。
8.1.2. ワークスペースの作成 リンクのコピーリンクがクリップボードにコピーされました!
ユースケースで OpenShift Dev Spaces ダッシュボードの使用が許可されていない場合は、カスタムリソースをクラスターに適用することで、OpenShift API を使用してワークスペースを作成できます。
OpenShift Dev Spaces ダッシュボードを使用してワークスペースを作成すると、コマンドラインを使用する場合と比較して、ユーザーエクスペリエンスと設定の利点が向上します。
- ユーザーとして、クラスターに自動的にログインします。
- OpenShift クライアントは自動的に動作します。
-
OpenShift Dev Spaces とそのコンポーネントは、ターゲット Git リポジトリーの devfile をクラスター上の
DevWorkspaceおよびDevWorkspaceTemplateカスタムリソースに自動的に変換します。 -
ワークスペースへのアクセスは、デフォルトで、ワークスペースの
DevWorkspaceにあるroutingClass: cheで保護されています。 -
DevWorkspaceOperatorConfig設定の認識は、OpenShift Dev Spaces によって管理されます。 以下を含む、
CheClusterカスタムリソースで指定されたspec.devEnvironmentsの設定の認識:-
永続的なストレージストラテジーは
devEnvironments.storageで指定されます。 -
デフォルトの IDE は
devEnvironments.defaultEditorで指定されます。 -
デフォルトのプラグインは
devEnvironments.defaultPluginsで指定されます。 -
コンテナーのビルド設定は
devEnvironments.containerBuildConfigurationで指定されます。
-
永続的なストレージストラテジーは
前提条件
-
クラスター上のプロジェクトに
DevWorkspaceリソースを作成する権限を持つアクティブなocセッションです。CLI の使用方法 を参照してください。 クラスター上の関連する OpenShift Dev Spaces ユーザー namespace を把握している。
ヒントhttps://<openshift_dev_spaces_fqdn>/api/kubernetes/namespaceにアクセスして、OpenShift Dev Spaces ユーザー namespace をnameとして取得できます。クラスターの OpenShift Dev Spaces ユーザー namespace にいる。
ヒントOpenShift では、コマンドライン
ocツールを使用して、現在の namespace を表示したり、namespace に切り替えたり できます。注記他のユーザーのためにワークスペースを作成する予定の OpenShift Dev Spaces 管理者は、OpenShift Dev Spaces または管理者によってプロビジョニングされたユーザー namespace に
DevWorkspaceカスタムリソースを作成する必要があります。https://access.redhat.com/documentation/ja-jp/red_hat_openshift_dev_spaces/3.16/html-single/administration_guide/index#administration-guide:configuring-namespace-provisioning を参照してください。
手順
DevWorkspaceカスタムリソースを準備するには、ターゲット Git リポジトリーの devfile の内容をコピーします。例8.2
schemaVersion: 2.2.0の devfile コンテンツをコピーcomponents: - name: tooling-container container: image: quay.io/devfile/universal-developer-image:ubi8-latestcomponents: - name: tooling-container container: image: quay.io/devfile/universal-developer-image:ubi8-latestCopy to Clipboard Copied! Toggle word wrap Toggle overflow ヒント詳細は、devfile v2 のドキュメント を参照してください。
前のステップの devfile の内容を
spec.templateフィールドの下に貼り付けて、DevWorkspaceカスタムリソースを作成します。例8.3
DevWorkspaceカスタムリソースCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
DevWorkspaceカスタムリソースの名前です。これが新しいワークスペースの名前になります。- 2
- 新しいワークスペースのターゲットプロジェクトであるユーザー namespace です。
- 3
DevWorkspaceカスタムリソースの作成時にワークスペースを開始する必要があるかどうかを決定します。- 4
- Microsoft Visual Studio Code - Open Source IDE devfile への URL 参照。
- 5
- 起動時にワークスペースに複製する Git リポジトリーの詳細です。
- 6
- ワークスペースコンテナーやボリュームコンポーネントなどのコンポーネントの一覧です。
-
DevWorkspaceカスタムリソースをクラスターに適用します。
検証
DevWorkspaceの PHASE ステータスをチェックして、ワークスペースが起動していることを確認します。oc get devworkspaces -n <user_project> --watch
$ oc get devworkspaces -n <user_project> --watchCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例8.4 出力
NAMESPACE NAME DEVWORKSPACE ID PHASE INFO user1-dev my-devworkspace workspacedf64e4a492cd4701 Starting Waiting for workspace deployment
NAMESPACE NAME DEVWORKSPACE ID PHASE INFO user1-dev my-devworkspace workspacedf64e4a492cd4701 Starting Waiting for workspace deploymentCopy to Clipboard Copied! Toggle word wrap Toggle overflow ワークスペースが正常に開始されると、
oc get devworkspacesコマンドの出力でその PHASE ステータスが Running に変わります。例8.5 出力
NAMESPACE NAME DEVWORKSPACE ID PHASE INFO user1-dev my-devworkspace workspacedf64e4a492cd4701 Running https://url-to-workspace.com
NAMESPACE NAME DEVWORKSPACE ID PHASE INFO user1-dev my-devworkspace workspacedf64e4a492cd4701 Running https://url-to-workspace.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次に、次のいずれかのオプションを使用してワークスペースを開くことができます。
-
oc get devworkspacesコマンドの出力の INFO セクションにある URL にアクセスします。 - OpenShift Dev Spaces ダッシュボードからワークスペースを開きます。
-
8.1.3. ワークスペースの停止 リンクのコピーリンクがクリップボードにコピーされました!
Devworkspace カスタムリソースの spec.started フィールドを false に設定することで、ワークスペースを停止できます。
前提条件
-
クラスター上のアクティブな
ocセッション。CLI の使用方法 を参照してください。 ワークスペース名は把握している。
ヒント$oc get devworkspacesの出力で、関連するワークスペース名を見つけることができます。クラスター上の関連する OpenShift Dev Spaces ユーザー namespace を把握している。
ヒントhttps://<openshift_dev_spaces_fqdn>/api/kubernetes/namespaceにアクセスして、OpenShift Dev Spaces ユーザー namespace をnameとして取得できます。クラスターの OpenShift Dev Spaces ユーザー namespace にいる。
ヒントOpenShift では、コマンドライン
ocツールを使用して、現在の namespace を表示したり、namespace に切り替えたり できます。
手順
次のコマンドを実行して、ワークスペースを停止します。
oc patch devworkspace <workspace_name> \ -p '{"spec":{"started":false}}' \ --type=merge -n <user_namespace> && \ oc wait --for=jsonpath='{.status.phase}'=Stopped \ dw/<workspace_name> -n <user_namespace>$ oc patch devworkspace <workspace_name> \ -p '{"spec":{"started":false}}' \ --type=merge -n <user_namespace> && \ oc wait --for=jsonpath='{.status.phase}'=Stopped \ dw/<workspace_name> -n <user_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
8.1.4. 停止したワークスペースの開始 リンクのコピーリンクがクリップボードにコピーされました!
Devworkspace カスタムリソースの spec.started フィールドを true に設定することで、停止したワークスペースを開始できます。
前提条件
-
クラスター上のアクティブな
ocセッション。CLI の使用方法 を参照してください。 ワークスペース名は把握している。
ヒント$oc get devworkspacesの出力で、関連するワークスペース名を見つけることができます。クラスター上の関連する OpenShift Dev Spaces ユーザー namespace を把握している。
ヒントhttps://<openshift_dev_spaces_fqdn>/api/kubernetes/namespaceにアクセスして、OpenShift Dev Spaces ユーザー namespace をnameとして取得できます。クラスターの OpenShift Dev Spaces ユーザー namespace にいる。
ヒントOpenShift では、コマンドライン
ocツールを使用して、現在の namespace を表示したり、namespace に切り替えたり できます。
手順
次のコマンドを実行して、停止したワークスペースを開始します。
oc patch devworkspace <workspace_name> \ -p '{"spec":{"started":true}}' \ --type=merge -n <user_namespace> && \ oc wait --for=jsonpath='{.status.phase}'=Running \ dw/<workspace_name> -n <user_namespace>$ oc patch devworkspace <workspace_name> \ -p '{"spec":{"started":true}}' \ --type=merge -n <user_namespace> && \ oc wait --for=jsonpath='{.status.phase}'=Running \ dw/<workspace_name> -n <user_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
8.1.5. ワークスペースの削除 リンクのコピーリンクがクリップボードにコピーされました!
DevWorkspace カスタムリソースを削除するだけで、ワークスペースを削除できます。
OpenShift Dev Spaces によって作成された場合、DevWorkspace カスタムリソースを削除すると、他のワークスペースリソースも削除されます (たとえば、参照された DevWorkspaceTemplate およびワークスペースごとの PersistentVolumeClaims)。
可能な限り、OpenShift Dev Spaces ダッシュボードを使用してワークスペースを削除します。
前提条件
-
クラスター上のアクティブな
ocセッション。CLI の使用方法 を参照してください。 ワークスペース名は把握している。
ヒント$oc get devworkspacesの出力で、関連するワークスペース名を見つけることができます。クラスター上の関連する OpenShift Dev Spaces ユーザー namespace を把握している。
ヒントhttps://<openshift_dev_spaces_fqdn>/api/kubernetes/namespaceにアクセスして、OpenShift Dev Spaces ユーザー namespace をnameとして取得できます。クラスターの OpenShift Dev Spaces ユーザー namespace にいる。
ヒントOpenShift では、コマンドライン
ocツールを使用して、現在の namespace を表示したり、namespace に切り替えたり できます。
手順
次のコマンドを実行して、ワークスペースを削除します。
oc delete devworkspace <workspace_name> -n <user_namespace>
$ oc delete devworkspace <workspace_name> -n <user_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow