跳转到内容

F5 XC 上下文

xcsh 通过上下文连接到 F5 Distributed Cloud — 上下文是将租户 URL、API 令牌和命名空间绑定在一起的命名凭据集。如果您使用过 kubectl config use-contextkubectx,工作流程完全相同:创建上下文、通过名称在上下文之间切换,并使用 - 快速切回。

您需要从 F5 XC 控制台获取三项信息:租户 URL、API 令牌,以及可选的命名空间。

/context create production https://acme.console.ves.volterra.io p12k3-your-api-token
Context 'production' created. Use /context activate production to switch to it.

如果您喜欢逐步引导式提示,也可以使用交互式向导:

/context wizard
/context production
╭─ production ─────────────────────────────────────────────────╮
│ XCSH_TENANT acme │
│ XCSH_API_URL https://acme.console.ves.volterra.io │
│ XCSH_API_TOKEN ...oken │
│ Status Connected (312ms) │
├─ Environment ────────────────────────────────────────────────┤
│ XCSH_NAMESPACE default │
╰──────────────────────────────────────────────────────────────╯

激活后,xcsh 会将租户凭据注入您的会话中。代理现在可以进行 F5 XC API 调用,状态行会显示当前活跃的上下文。

3. 添加更多上下文并在它们之间切换

Section titled “3. 添加更多上下文并在它们之间切换”
/context create staging https://staging.console.ves.volterra.io p12k3-staging-token

按名称切换 — 无需子命令动词:

/context staging

切回上一个上下文(cd - 风格):

/context -

连续调用 /context - 两次会返回到起始位置。

/context
production https://acme.console.ves.volterra.io
* staging https://staging.console.ves.volterra.io

* 标记表示当前活跃的上下文。

命令功能说明
/context列出所有上下文
/context <name>切换到指定上下文
/context -切换到上一个上下文
/context show显示活跃上下文的详细信息(令牌已脱敏)
/context status显示当前认证状态
命令功能说明
/context create <name> <url> <token> [namespace]创建上下文
/context delete <name> --confirm删除上下文(需要 --confirm
/context rename <old> <new>重命名上下文
/context validate <name>测试凭据而不切换上下文
/context export [name] [--include-token]导出为 JSON(默认脱敏令牌)
/context import <path-or-json> [--overwrite]从文件或内联 JSON 导入
/context wizard交互式引导设置

每个上下文都有一个默认命名空间。可以在不更改上下文的情况下切换命名空间:

/context namespace system

Tab 补全会提供来自活跃租户的命名空间名称。

上下文可以携带额外的环境变量,这些变量会在激活时注入您的会话中。适用于不属于凭据集但与特定租户相关的配置。

/context set CUSTOM_HEADER=x-acme-trace
/context set LOG_LEVEL=debug
/context env list
/context unset LOG_LEVEL

别名:add = setremove/clear = unset

输入 /context 并按 Tab 键。下拉列表会显示:

  1. 上下文名称 — 带有租户 URL 提示,便于区分不同租户
  2. - — 在您之前切换过时出现,显示将要切换到的上下文
  3. 子命令listcreatedelete

上下文名称排在最前面,因为切换是最常见的操作。

子命令级别的补全同样有效:/context activate <Tab> 补全上下文名称,/context namespace <Tab> 补全命名空间,/context unset <Tab> 补全已知的环境变量键。

上下文名称必须为 1-64 个字符:字母、数字、连字符、下划线。

与子命令冲突的名称会被拒绝:

/context create list https://example.com tok
Error: Context name 'list' conflicts with a /context subcommand. Choose a different name.

完整的保留名称集:listshowstatuscreatedeleterenamenamespaceenvsetunsetaddremoveclearactivatevalidateexportimportwizardhelp。比较不区分大小写。

如果在启动 xcsh 之前在 shell 环境中设置了 XCSH_API_URLXCSH_API_TOKEN,它们将优先于任何上下文。这对于 CI/CD 流水线或不需要创建持久上下文的临时会话非常有用。

在此模式下运行时,/context 会显示来自环境变量的凭据,并带有 (via env vars) 标签。

  • 会话级作用域:上一个上下文会在重启 xcsh 时重置,不会持久化到磁盘。
  • 乒乓切换:连续执行 /context - 两次会返回到起始位置。
  • 变更安全:如果删除了上一个上下文,指针会被清除。如果重命名了上一个上下文,指针会跟随新名称。
  • 重复激活为空操作:在已处于 production 时执行 /context production 不会重置上一个上下文的指针。

/context 的用户体验遵循以下设计:

  • kubectxkubectx <name> 用于切换,kubectx - 切回上一个,单独的 kubectx 用于列表
  • kubectlkubectl config use-context 作为显式形式
  • Shellcd - / OLDPWD 用于上一目录跟踪