jupyterhub-kubespawner的精美配置UI
项目描述
jupyterhub-fancy-profiles
一个基于react的、精美的用户可选择配置实现,用于与 jupyterhub-kubespawner 一起使用。
功能
-
解析给kubespawner的
profileList
,并渲染一个看起来更好看且功能更丰富的选择器。这包括各种选项的描述,以及允许用户“填写”选择的更好描述。 -
如果启用,则与作为JupyterHub服务部署的 binderhub 交互,允许用户 动态 构建他们想要使用的镜像,而无需预先构建。
限制
-
虽然支持多个
profile_options
,但只支持单个profile
。 -
表单值在刷新后不会记住其之前的状态
如何使用
与z2jh一起使用
此包可以与任何KubeSpawner安装一起使用,但通常与z2jh的安装一起使用。它需要在z2jh使用的hub
镜像中安装jupyterhub-fancy-profiles
。
作为便利,我们构建并推送了可以与z2jh自动使用的Docker镜像!
-
查看 可用标签列表 并找到与您使用的z2jh版本匹配的标签。
-
在z2jh配置中使用此镜像。在传递给
helm
的values.yaml
文件中,使用以下内容hub: image: name: quay.io/yuvipanda/z2jh-hub-with-fancy-profiles tag: <tag-from-the-list> extraConfig: 01-enable-fancy-profiles: | from jupyterhub_fancy_profiles import setup_ui setup_ui(c)
-
运行
helm upgrade
,您应该已启用精美配置!
直接与KubeSpawner一起使用
安装此包后,您可以通过将以下片段添加到您的jupyterhub_config.py
文件中,让kubespawner使用此包提供的模板来提供适当的UI
from jupyterhub_fancy_profiles import setup_ui
setup_ui(c)
setup_ui
函数将根据需要设置所有适当的配置。目前,它将
- 为kubespawner设置额外的模板,用于渲染
profile_list
的基础HTML。 - 设置额外的HTTP处理器,主要用于提供静态资源。
这里有什么内容?
主要内容包括
jupyterhub_fancy_profiles/templates
包含jinja2模板,主要是用于构建表单的HTML
。这里可以包含多个模板,使用jinja2的所有组合功能(如include
)组合在一起src/
包含通过标准前端打包工具(webpack
和babel
)打包的JS和CSS,输出到jupyterhub_fancy_profiles/static/
。这允许我们使用标准的前端工具编写JS和CSS - 例如,xterm.js可以无太多复杂地使用。
为什么选择React?
/* 如果这个文件超过200行代码(不计文档/注释),开始使用框架
(来自BinderHub JS源代码)
亲爱的读者,这个文件确实超过了200行代码,但遗憾的是没有时间开始使用框架。从中学到的教训是我们应该从一开始就使用一个非常轻量级的框架,一个主流的框架,可以吸引前端开发者,同时又不那么花哨以至于没有人可以工作。
发布制作
我们已经设置了自动化,将发布到PyPI。我们应该尽早并频繁地发布!
-
确保你在本地检出中与
main
分支同步。git checkout main git stash git pull upstream main # or git pull origin main, as needed
-
创建一个带有发布版本的新git标签。
git tag -a v<version-number>
在这里留下一个简单的消息。虽然理想情况下还应该有变更日志,但至少简单地说明
版本 <版本号>
-
将您的标签推送到GitHub。
git push origin --tags
-
就这样!新的发布应该很快就会出现在PyPI上。
与BinderHub UI的比较
BinderHub项目提供了一个前端,也允许最终用户构建图像并启动它们。你是如何确定在什么时候使用该UI与jupyterhub-fancy-profiles
(与动态图像构建集成)的?
该项目仍处于早期阶段,这些指南可能会随时间而变化。
首要问题是关于意图的问题。
如果你正在构建一个具有许多功能(持久化家目录、多个图像配置文件、资源需求、严格的访问控制等)的持久化JupyterHub,并且也需要为用户提供动态构建自己的图像的方法,那么请使用带有BinderHub集成的jupyterhub-fancy-profiles
。
如果你正在构建一个用户可以点击链接立即进入特定环境和内容的临时JupyterHub,请使用BinderHub UI。
一个有用的标准是查看是否有持久化家目录存储。如果你的用户需要这个功能,你可能会想使用带有BinderHub集成的jupyterhub-fancy-profiles
。如果不是,BinderHub UI更有可能被使用。
资金
项目详情
jupyterhub_fancy_profiles-0.3.5.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f14c2d9b9173842c6a8362837b68314094d7099d6799323d4f3a97136d34a5d8 |
|
MD5 | 3a49c4cb5db308b435311fe4087c22c1 |
|
BLAKE2b-256 | dec5845f25fdef4b72aa8b8edded5b7c9a917f9af8d6d851c94c560795642339 |
jupyterhub_fancy_profiles-0.3.5-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3cac469bd02f3f06a93dd4047646f5ddbff2cbcfd0585d53c928710ef1348eb2 |
|
MD5 | 3cd69b5c61c7738964877303c7087604 |
|
BLAKE2b-256 | 1858da0178a2bafa64868e5d3ec5feea75c795d2140220a9e6a613c920bdea31 |