@ fnndsc/ porter (英语)
PORTER是 mise 显示管理器——gdm到ARGUS的桌面. 它将一个操作员登录到一个 CUBE, 在这个主机上找到或开始他们的 Calypso 会话, 并显示他们的浏览器到 ARGUS 下 /s/<key>/,持有附加符号,这样浏览器就永远不会这样做.
设计日志 : docs/porter.adoc。 。 。 .
PORTER_CUBE_URL=https://cube.example.org/api/v1/ porter
open http://localhost:4180/login # the door: log in, land on the session
curl -s -c jar -X POST localhost:4180/login -H 'content-type: application/json' -d '{"username":"chris","password":"…"}'
curl -b jar -N localhost:4180/boot/<key>
npm install -g @fnndsc/porter # brings chell, calypso and argus beneath it
PORTER_CUBE_URL=https://cube.example.org/api/v1/ porter
或从取出: make porter CUBE_URL=…。在 deploy/。 。 。 .
贝斯
在一次演讲中,每个人的会话都用一个泊位进行:他们自己的集装箱从机场出发 mise-berth 图像,由泊位发射装置启动,是控制容器发动机的一个过程(docs/dev-bastion.adoc,站着。 发射装置是这个包裹的第二个程序:
BERTH_LAUNCHER_SECRET_FILE=/etc/mise/launcher.secret \
BERTH_LAUNCHER_LISTEN=/run/mise/launcher.sock \
berth-launcher
写着 BERTH_DOCKER_SOCKET (单位:千美元)/var/run/docker.sock, (中文(简体) ), BERTH_IMAGE (密苏里州) latest, (中文(简体) ), BERTH_PREFIX (单位:千美元)mise-berth, (中文(简体) ), BERTH_CUBE_NETWORK (单位:千美元)<prefix>-cube-net, (中文(简体) ), BERTH_PORTER_CONTAINER (porter的容器,当porter是一;当porter运行在主机上时未设置), BERTH_POLICY_FILE [杰森: cpus, (中文(简体) ), memoryGib, (中文(简体) ), pids, (中文(简体) ), holds和 BERTH_PROFILE (单位:千美元)minimal) (中文(简体) ). 它的API,仅用于搬运工和携带秘密,是一个人的泊位的起步,起止和状态;一个起步名称集合(一个种子的ID) /incoming 财务报告和审定财务报表 /outgoing 是用来,或者没有.
电线是 docs/berths.adoc地形学: 每一个泊位都挂出自家的桥上, <prefix>-net-<user>,当泊位起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起 发射装置开始去除之前的跑道: 帮助者,和没有泊位的电线.
卷:每人1所住房(/home/<user>个人和组群持有1卷 incoming/ 财务报告和审定财务报表 outgoing/,挂载在 /incoming (只读)和 /outgoing以另一伙人为开始,他们又停泊在另一对人上,而那对人将留在家里, …-cohort-none。 。 。 .
图像是一个常数, BERTH_IMAGE_DEFAULT 内 src/launcher/launcher.ts数字 : ghcr.io/harbor-medical-ai/mise-berth:latest,标记 Berth 图像工作流程在主干线上移动(images/mise-berth/README.md) (中文(简体) ). 什么都没有被钉住。 发射机在从中取出泊位之前拉出图像,因此在标记移动后所取出的一个泊位运行了没有重新部署的更新的图像;已经运行的泊位按原样交还. 出故障的拉出(注册后离开,两分钟内无回复)是发射台日志中的一行,泊位取自主机所持的复制品;没有拒绝复制的开始,说明原因.
当部署时,一个搬运工会在泊位开始;没有它,它就会在旁边开始:
PORTER_BERTHS=launcher PORTER_LAUNCHER=/run/mise/launcher.sock PORTER_LAUNCHER_SECRET_FILE=/etc/mise/launcher.secret porter
在登录时,它用他们的代号读取了这个人的CUBE id,向发射台询问他们的泊位(uid和gid that id),并通过门显示泊位的卡利普索;后来登录的代号已经到达了泊位;登录停放泊位并保持了它的卷. 秘密文件为模式0600,发射装置拒绝其他用户可以读取的一个.
操作员看每个人的泊位 GET /berths,询问与 Authorization: Token <CUBE token> 或管理员的基本证书:
curl -s -u chris:… https://porter.example.org/berths
# {"at":"2026-11-09T10:00:00.000Z","berths":[{"user":"ana","state":"running","cohort":"none","cpuPercent":3,"memoryBytes":220200960,"memoryLimitBytes":2147483648},{"user":"benito","state":"stopped","cohort":null,"cpuPercent":null,"memoryBytes":null,"memoryLimitBytes":null}]}
搬运工将证书交给 CUBE 的 API 根, 只回答一个 CUBE 管理员( 根名它) admin 仅链接到一个管理员 : 401 没有证书或一个CUBE拒绝, 403 对于一个不是管理员的CUBE用户, 502 当CUBE(或从它转出)或发射机不回答时. 客户端地址每分钟可询问十次;过去是429次 Retry-After,而CUBE没有被询问。 CUBE对一个案件的判决 Authorization 标题(绝不是证书;保留在它的sha256下)被记为30 s. 正在运行的泊位载有其CPU(一个CPU的百分之一)和内存的样本;被停止的泊位是其家庭体积停留的人;没有同时存在的人缺席. 发射器在它的当地API上读取了泊位(GET /berths/access?cubeUrl=…),因此搬运工从不触及容器引擎;它仅通过身份显示这个搬运工的CUBE的人,因此没有显示早期CUBE URL留下的泊位或家用,并且3 s范围内的泊位没有取样,其用法未读而运行. 不设泊位的搬运工(PORTER_BERTHS 未设定)答案 {"berths": null, "why": "this porter starts no berths"},作为答案berths are off)而不是读取失败。 stratus读这个是为了 chris status并且阿格斯显示它作为Host Access 在它的用户.