3.10. 配置仪表板
3.10.1. 配置入门示例
此流程描述了如何配置 OpenShift Dev Spaces 仪表板来显示自定义示例。
先决条件
-
具有 OpenShift 集群管理权限的活跃的
oc
会话。请参阅 CLI 入门。
流程
使用示例配置创建 JSON 文件。该文件必须包含一个对象数组,每个对象代表一个示例。
cat > my-samples.json <<EOF [ { "displayName": "<display_name>", 1 "description": "<description>", 2 "tags": <tags>, 3 "url": "<url>", 4 "icon": { "base64data": "<base64data>", 5 "mediatype": "<mediatype>" 6 } } ] EOF
使用示例配置创建 ConfigMap:
oc create configmap getting-started-samples --from-file=my-samples.json -n openshift-devspaces
在 ConfigMap 中添加所需的标签:
oc label configmap getting-started-samples app.kubernetes.io/part-of=che.eclipse.org app.kubernetes.io/component=getting-started-samples -n openshift-devspaces
- 刷新 OpenShift Dev Spaces Dashboard 页面,以查看新的示例。
3.10.2. 配置编辑器定义
了解如何配置 OpenShift Dev Spaces 编辑器定义。
先决条件
-
具有 OpenShift 集群管理权限的活跃的
oc
会话。请参阅 CLI 入门。
流程
使用编辑器定义配置创建
my-editor-definition-devfile.yaml
YAML 文件。重要确保您在
metadata.attributes
下为publisher
和version
提供实际值。它们用于构建编辑器 id 以及编辑器名称,格式为publisher/name/version
。您可以在下面找到支持的值,包括可选的值:
# Version of the devile schema schemaVersion: 2.2.2 # Meta information of the editor metadata: # (MANDATORY) The editor name # Must consist of lower case alphanumeric characters, '-' or '.' name: editor-name displayName: Display Name description: Run Editor Foo on top of Eclipse Che # (OPTIONAL) Array of tags of the current editor. The Tech-Preview tag means the option is considered experimental and is not recommended for production environments. While it can include new features and improvements, it may still contain bugs or undergo significant changes before reaching a stable version. tags: - Tech-Preview # Additional attributes attributes: title: This is my editor # (MANDATORY) The publisher name publisher: publisher # (MANDATORY) The editor version version: version repository: https://github.com/editor/repository/ firstPublicationDate: '2024-01-01' iconMediatype: image/svg+xml iconData: | <icon-content> # List of editor components components: # Name of the component - name: che-code-injector # Configuration of devworkspace-related container container: # Image of the container image: 'quay.io/che-incubator/che-code:insiders' # The command to run in the dockerimage component instead of the default one provided in the image command: - /entrypoint-init-container.sh # (OPTIONAL) List of volumes mounts that should be mounted in this container volumeMounts: # The name of the mount - name: checode # The path of the mount path: /checode # (OPTIONAL) The memory limit of the container memoryLimit: 256Mi # (OPTIONAL) The memory request of the container memoryRequest: 32Mi # (OPTIONAL) The CPU limit of the container cpuLimit: 500m # (OPTIONAL) The CPU request of the container cpuRequest: 30m # Name of the component - name: che-code-runtime-description # (OPTIONAL) Map of implementation-dependant free-form YAML attributes attributes: # The component within the architecture app.kubernetes.io/component: che-code-runtime # The name of a higher level application this one is part of app.kubernetes.io/part-of: che-code.eclipse.org # Defines a container component as a "container contribution". If a flattened DevWorkspace has a container component with the merge-contribution attribute, then any container contributions are merged into that container component controller.devfile.io/container-contribution: true container: # Can be a dummy image because the component is expected to be injected into workspace dev component image: quay.io/devfile/universal-developer-image:latest # (OPTIONAL) List of volume mounts that should be mounted in this container volumeMounts: # The name of the mount - name: checode # (OPTIONAL) The path in the component container where the volume should be mounted. If no path is defined, the default path is the is /<name> path: /checode # (OPTIONAL) The memory limit of the container memoryLimit: 1024Mi # (OPTIONAL) The memory request of the container memoryRequest: 256Mi # (OPTIONAL) The CPU limit of the container cpuLimit: 500m # (OPTIONAL) The CPU request of the container cpuRequest: 30m # (OPTIONAL) Environment variables used in this container env: - name: ENV_NAME value: value # Component endpoints endpoints: # Name of the editor - name: che-code # (OPTIONAL) Map of implementation-dependant string-based free-form attributes attributes: # Type of the endpoint. You can only set its value to main, indicating that the endpoint should be used as the mainUrl in the workspace status (i.e. it should be the URL used to access the editor in this context) type: main # An attribute that instructs the service to automatically redirect the unauthenticated requests for current user authentication. Setting this attribute to true has security consequences because it makes Cross-site request forgery (CSRF) attacks possible. The default value of the attribute is false. cookiesAuthEnabled: true # Defines an endpoint as "discoverable", meaning that a service should be created using the endpoint name (i.e. instead of generating a service name for all endpoints, this endpoint should be statically accessible) discoverable: false # Used to secure the endpoint with authorization on OpenShift, so that not anyone on the cluster can access the endpoint, the attribute enables authentication. urlRewriteSupported: true # Port number to be used within the container component targetPort: 3100 # (OPTIONAL) Describes how the endpoint should be exposed on the network (public, internal, none) exposure: public # (OPTIONAL) Describes whether the endpoint should be secured and protected by some authentication process secure: true # (OPTIONAL) Describes the application and transport protocols of the traffic that will go through this endpoint protocol: https # Mandatory name that allows referencing the component from other elements - name: checode # (OPTIONAL) Allows specifying the definition of a volume shared by several other components. Ephemeral volumes are not stored persistently across restarts. Defaults to false volume: {ephemeral: true} # (OPTIONAL) Bindings of commands to events. Each command is referred-to by its name events: # IDs of commands that should be executed before the devworkspace start. These commands would typically be executed in an init container preStart: - init-container-command # IDs of commands that should be executed after the devworkspace has completely started. In the case of Che-Code, these commands should be executed after all plugins and extensions have started, including project cloning. This means that those commands are not triggered until the user opens the IDE within the browser postStart: - init-che-code-command # (OPTIONAL) Predefined, ready-to-use, devworkspace-related commands commands: # Mandatory identifier that allows referencing this command - id: init-container-command apply: # Describes the component for the apply command component: che-code-injector # Mandatory identifier that allows referencing this command - id: init-che-code-command # CLI Command executed in an existing component container exec: # Describes component for the exec command component: che-code-runtime-description # The actual command-line string commandLine: 'nohup /checode/entrypoint-volume.sh > /checode/entrypoint-logs.txt 2>&1 &'
使用编辑器定义内容创建 ConfigMap:
oc create configmap my-editor-definition --from-file=my-editor-definition-devfile.yaml -n openshift-devspaces
在 ConfigMap 中添加所需的标签:
oc label configmap my-editor-definition app.kubernetes.io/part-of=che.eclipse.org app.kubernetes.io/component=editor-definition -n openshift-devspaces
- 刷新 OpenShift Dev Spaces Dashboard 页面,以查看新的可用编辑器。
3.10.2.1. 检索编辑器定义
OpenShift Dev Spaces 仪表板 API 也从以下 URL 提供编辑器定义:
https:// <openshift_dev_spaces_fqdn> /dashboard/api/editors/devfile?che-editor= <editor id>
对于 第 3.10.2 节 “配置编辑器定义” 中的示例,可以通过访问以下 URL 来检索编辑器定义:
https://<openshift_dev_spaces_fqdn> /dashboard/api/editors/devfile?che-editor=publisher/editor-name/version
从 OpenShift 集群中检索编辑器定义时,可以通过仪表板服务访问 OpenShift Dev Spaces 仪表板 API:http://devspaces-dashboard.openshift-devspaces.svc.cluster.local:8080/dashboard/api/editors/devfile?che-editor= < editor id>
其他资源
- devfile 文档
- {editor-definition-samples-link}
3.10.3. 自定义 OpenShift Eclipse Che ConsoleLink 图标
此流程描述了如何自定义 Red Hat OpenShift Dev Spaces ConsoleLink 图标。
先决条件
-
具有 OpenShift 集群管理权限的活跃的
oc
会话。请参阅 CLI 入门。
流程
创建 Secret:
oc apply -f - <<EOF apiVersion: v1 kind: Secret metadata: name: devspaces-dashboard-customization namespace: openshift-devspaces annotations: che.eclipse.org/mount-as: subpath che.eclipse.org/mount-path: /public/dashboard/assets/branding labels: app.kubernetes.io/component: devspaces-dashboard-secret app.kubernetes.io/part-of: che.eclipse.org data: loader.svg: <Base64_encoded_content_of_the_image> 1 type: Opaque EOF
- 1
- 带有禁用行嵌套的 Base64 编码。
- 等待 devspaces-dashboard 的推出完成。
其他资源