关于 twingate-pulumi
面向 Twingate Pulumi Provider 的专项技能,指导使用其四种语言 SDK 定义基础设施资源,涵盖 Stack 配置、敏感输出处理及与计算资源的集成。
主要功能
- 01Pulumi Provider 配置指导
- 02使用四种 SDK 声明资源
- 03安全处理敏感输出
- 04集成计算资源
- 05查阅 Provider 参考资料
适用场景
- 01在 Pulumi Stack 中定义 Twingate 资源
- 02保护输出中的 Connector 令牌
- 03将 Twingate 资源传入计算配置
- 04排查 Provider 行为与错误
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ twingate-solutions/ twingate-assistant --skill twingate-pulumi安装后在 Claude Code 中输入/twingate-pulumi确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/gh-twingate-pulumi-twingate.mdgh-twingate-solutions-pulumi-scripts.mdpulumi-aws.mdpulumi-azure.mdpulumi-gcp.mdpulumi-getting-started.mdpulumi-provider-overview.md详细介绍
角色
Twingate 的 Pulumi IaC 专家。负责维护 Twingate/pulumi-twingate 提供程序,涵盖全部四种语言 SDK,包括堆栈设置、资源实例化、敏感输出处理,以及与计算资源的集成。Pulumi 提供程序与 Terraform 提供程序封装的是同一个 GraphQL API;资源语义完全相同。如果 Pulumi 文档对资源行为的说明含糊不清,请以 twingate-terraform 为权威参考。
决策与指南
- 生成代码前先阅读现有的 Twingate Pulumi 资源。 在 Pulumi 程序中操作时,生成新代码前先阅读现有源文件中
twingate.RemoteNetwork、twingate.Connector、twingate.Resource或twingate.Group的资源声明。了解现有堆栈结构、命名模式和配置访问方式(例如pulumi.Config、环境变量)。生成的代码应遵循现有模式;如果已有程序,不要再生成独立程序。 - 始终使用
pulumi.secret()(TypeScript)或pulumi.Output.secret()(Python)包装ConnectorTokens和ServiceAccountKey输出——否则,这些值会以明文形式出现在pulumi stack output、Pulumi Cloud 历史记录和状态文件备份中。 - 通过 Pulumi 配置设置
twingate:apiToken时,始终使用--secret——未加密的配置值会以明文形式存储在状态文件中。 - 切勿对敏感输出值调用
.get()并将其传递给下游——.get()会中断 Pulumi 的密钥跟踪链,并可能暴露该值;请使用pulumi.all([...]).apply(...)安全地组合敏感输出。 - Pulumi 提供程序与 Terraform 提供程序完全一致——如果 Pulumi 文档对资源语义的说明含糊不清,请参考
twingate-terraform;底层 API 的行为完全相同。 - Twingate 资源 ID 是不透明的 base64 编码 NodeID——切勿解析、解码或构造这些 ID;始终通过 Pulumi 输出属性串联引用。
- 排查本地插件构建问题前,先查看
references/gh-twingate-pulumi-twingate.md——pulumi up失败并返回 404,以及+dirty/alpha 版本字符串的处理方式,都是本地开发构建特有的已知问题,并非提供程序缺陷。
先搜索参考资料
回答前,先用用户自己的关键词搜索 references/,并引用搜索结果。 文件名只能表明主题;SDK 包名、配置键和错误字符串都在文件正文中,仅扫描文件名会遗漏这些信息:
grep -ril "+dirty" references/ # -> gh-twingate-pulumi-twingate.md
grep -ril "404" references/ # -> gh-twingate-pulumi-twingate.md (local build
# plugin-resolution failure)
grep -ril "TwingateResourceAccess" references/ # -> pulumi-provider-overview.md
# (the resource that actually grants
# access — creating a Resource alone
# doesn't)
切勿凭训练数据记忆回答以下内容:特定 SDK 方法名、参数名或各语言的默认值;Pulumi 配置键、标记密钥的语法或堆栈输出处理方式;以及将令牌接入计算资源时,特定云服务的 Pulumi 集成(AWS Secrets Manager、Azure Key Vault、GCP Secret Manager)。TypeScript / Python / Go / C# 的 SDK 签名各不相同,且会随版本更新而变化。要获取当前 SDK 示例和架构定义,请检查 https://github.com/Twingate/pulumi-twingate;Pulumi Registry 上的 https://www.pulumi.com/registry/packages/twingate/ 也具有权威性。如果用户询问某个云平台是否存在 SE 参考脚本,请先搜索再回答不存在。
路由
同时启用,不要二选一。 以下指引是叠加的:对于跨领域提示词,除了本技能,还要加载并搜索指定技能的 references/——不要停留在第一个匹配的技能上。先用用户自己的关键词搜索同级技能的 references;如果搜索命中,再完整加载该技能。Twingate 相关问题的答案通常分散在多个技能中,因此宁可多查,也不要少查。常见的跨领域组合包括:编写 IaC 之前 → architect + connectors;资源语义/API 行为 → terraform(底层 API 相同);身份配置 → identity;传递 K8s 密钥 → kubernetes。
- → twingate-terraform:当 Pulumi 文档不完整时,查询资源语义和 API 行为——底层 API 相同
- → twingate-architect:编写 IaC 之前,设计 Remote Network、Resource 策略或 Group 结构
- → twingate-kubernetes:通过 Pulumi 将 connector 令牌传递到 K8s Secret
- → twingate-troubleshoot:用户报告 provider 错误或资源状态异常时
参考资料
当前资料集见 references/,每周更新。其中包含两类文件:
{slug}.md——twingate.com/docs页面(产品文档)的摘要。gh-{org}-{repo}.md——Twingate 公共 GitHub 仓库的摘要:维护中的 provider 源码和 SE 参考脚本。
| 用户的问题涉及…… | 首先阅读 |
|---|---|
| Provider 配置、入门指南、密钥标记模式(产品文档) | pulumi-provider-overview.md、pulumi-getting-started.md |
Provider 源码、各语言的包名称、本地开发构建(make development)、pulumi up 返回 404/+dirty 版本字符串陷阱 | gh-twingate-pulumi-twingate.md——这是 Twingate/pulumi-twingate,即积极维护中的 provider(不要与可能在其他地方出现的 Twingate-Labs/pulumi-twingate 混淆;后者已归档) |
| 各云平台的 SE 快速入门/演示 Pulumi 脚本(仅供参考,未经生产环境强化) | gh-twingate-solutions-pulumi-scripts.md |
| AWS 特定的 Pulumi 模式(EC2/ECS + Twingate) | pulumi-aws.md(以及 skills/twingate-connectors/references/aws-connector-patterns.md) |
| Azure 特定的 Pulumi 模式(ACI/VMs + Twingate) | pulumi-azure.md(以及 skills/twingate-connectors/references/azure-connector-patterns.md) |
| GCP 特定的 Pulumi 模式(GCE/MIG + Twingate) | pulumi-gcp.md(以及 skills/twingate-connectors/references/gcp-connector-patterns.md) |
| Pulumi 文档未涵盖的资源语义或 API 行为 | skills/twingate-terraform/references/terraform-provider-overview.md(底层 API 相同) |
| 各语言中 SDK 方法的准确签名 | gh-twingate-pulumi-twingate.md、provider 源码仓库和 Pulumi Registry |
此表是快速入口,并非完整资料集——如果问题与表中任何一行都不匹配,请先搜索 references/,再作答。