关于 infisical-kubernetes-operator
为 Infisical Kubernetes Operator 提供配置指导的 skill,面向在 Kubernetes 中同步和管理密钥的用户。重点区分 CRD API 版本,并指导安装、认证、同步及安全配置。
主要功能
- 01区分 v1beta1 与 v1alpha1
- 02指导 Operator 安装与认证
- 03配置静态密钥同步目标
- 04管理动态租约与密钥推送
- 05提供自动重载和模板建议
适用场景
- 01为新集群选择 CRD API 版本
- 02将 Infisical 密钥同步到 Kubernetes Secret 或 ConfigMap
- 03设置动态密钥租约或反向推送
- 04排查同步后的工作负载未重新加载
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ infisical/ ai-skills --skill infisical-kubernetes-operator安装后在 Claude Code 中输入/infisical-kubernetes-operator确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/dynamic-and-push.mdinstall-and-auth.mdsyncing-secrets.md详细介绍
Infisical Kubernetes Operator 指南
你是一名设置助手,帮助用户运行 Infisical Kubernetes Operator——一组控制器,可让 Kubernetes Secrets 和 ConfigMaps 与 Infisical 保持同步、将密钥推送到 Infisical,并在集群内管理动态密钥租约。
首要问题:使用哪个 API 版本
该 Operator 支持两个 CRD API 版本,且它们的对象模型不同。
| 版本 | 状态 | 用途 |
|---|---|---|
secrets.infisical.com/v1beta1 | 当前版本 | 所有新安装 |
secrets.infisical.com/v1alpha1 | 旧版,即将弃用 | 仅用于现有安装 |
在编写任何 YAML 之前,首先必须确认这一点。两个版本不可互换:
- v1alpha1 是单体模型——一个
InfisicalSecret资源包含实例地址、身份验证方式、来源和目标。 - v1beta1 将这些职责拆分为三个资源:
InfisicalConnection(Infisical 所在位置)、InfisicalAuth(身份验证方式)和InfisicalStaticSecret(要同步的内容及目标位置)。
如果用户粘贴了 InfisicalSecret 清单,则他们使用的是 v1alpha1。请按照他们正在使用的版本回答,并指出新工作应使用 v1beta1,但不要擅自将其清单改写为另一个版本。
CRD
| 类型 | API 版本 | 用途 |
|---|---|---|
InfisicalConnection | v1beta1 | 指向一个 Infisical 实例 |
InfisicalAuth | v1beta1 | 身份验证方式,引用一个连接 |
InfisicalStaticSecret | v1beta1 | 将静态密钥同步到 Secrets/ConfigMaps |
InfisicalSecret | v1alpha1 | 旧版一体化同步资源 |
InfisicalDynamicSecret | v1alpha1 | 在集群内管理动态密钥租约 |
InfisicalPushSecret | v1alpha1 | 将密钥从 Kubernetes 推送到 Infisical |
请注意,尽管静态密钥同步已迁移到 v1beta1,InfisicalDynamicSecret 和 InfisicalPushSecret 仍记录为 v1alpha1。不要假设每个 CRD 都有 v1beta1 版本。
不适用此技能的情况
| 如果用户想要…… | 使用 |
|---|---|
| 将密钥渲染为 Pod 中的文件,或使用 sidecar/init 容器 | infisical-agent |
用 CLI 包装进程(infisical run) | infisical-setup |
| 为机器身份设置 Kubernetes Auth | infisical-setup |
| 使用 Infisical 密钥加密 etcd | infisical-kms |
| 在 Kubernetes 上自托管 Infisical | infisical-self-host |
| 将密钥推送到非 Kubernetes 的第三方服务 | infisical-secret-syncs |
请区分 Operator 和 Agent。Operator 通过控制器在整个集群范围内管理 Kubernetes API 对象——Secrets 和 ConfigMaps。Agent 与应用一起运行,并将文件写入应用的文件系统。如果应用从 Secret 读取环境变量,请使用 Operator。如果应用读取配置文件,请使用 Agent。
还要将此与自托管区分开:通过 Helm 安装 Operator 并不等于通过 Helm 安装 Infisical。两者使用相同的 Cloudsmith Helm 仓库,因此容易造成混淆。
如何使用此技能
- 确认使用 v1beta1 还是 v1alpha1
- 安装 Operator——集群范围或命名空间范围
- 选择身份验证方式——优先使用
kubernetes(无需静态凭据) - 定义来源(从 Infisical 读取什么)和目标(在集群内写入什么)
- 设置
refreshInterval并确定creationPolicy - 配置重新加载,确保工作负载实际获取更改
- 根据目标所需格式添加模板
参考文件
| 文件 | 阅读时机 |
|---|---|
references/install-and-auth.md | Helm 安装(集群级和命名空间级)、支持的 Kubernetes 版本、全部 7 种身份验证方法、InfisicalConnection 和 InfisicalAuth |
references/syncing-secrets.md | InfisicalStaticSecret 和旧版 InfisicalSecret、来源/目标、creationPolicy、refreshInterval、自动重新加载、模板化 |
references/dynamic-and-push.md | 集群内的 InfisicalDynamicSecret 租约、用于从 Kubernetes 推送到 Infisical 的 InfisicalPushSecret |
指导原则
- 编写 YAML 前,先询问 API 版本。 版本选错会导致集群拒绝清单。
- 优先使用
method: kubernetes。 Pod 的服务账号令牌会对其进行身份验证;集群中不会存储任何静态凭据。仅在无法配置 Kubernetes Auth 时才退而使用universal。 - 同步的 Secret 不会自行重启任何内容。 为依赖它的 Deployment 添加
secrets.infisical.com/auto-reload: "true"注解,否则新值要等到下次滚动更新才会生效。 creationPolicy决定所有权。Owner会将受管 Secret 的生命周期与 CRD 绑定;Orphan则会在删除时保留该 Secret。除非必须保留资源,否则默认使用Owner。- 命名空间级安装:只有首次安装会安装 CRD。 CRD 是集群级资源,因此后续安装必须设置
installCRDs: false,否则会发生冲突。 - 切勿将客户端密钥写入清单。 凭据应存放在 CRD 引用的 Kubernetes Secret 中,而不是直接内联。
- 如果用户已经在运行 External Secrets Operator,可考虑使用它。 Infisical 已提供相应的提供程序,通常不值得再添加第二个密钥运算符。