销毁Port集成Skill dot-ai-port-destroy

这是一个DevOps技能,用于销毁由/port-setup创建的Port集成、Kubernetes资源和本地文件,确保环境清理和资源回收。功能包括移除Kubernetes导出器、删除Port蓝图和实体、清理GitHub工作流和秘密等,支持GitOps和非GitOps部署方式。关键词:Port集成销毁、Kubernetes资源清理、DevOps自动化、GitOps、云原生部署、集成清理、环境清理。

DevOps 0 次安装 0 次浏览 更新于 3/18/2026

名称: dot-ai-port-destroy 描述: 移除由/port-setup创建的所有Port集成、Kubernetes资源和本地文件 用户可调用: true

销毁Port集成

移除由 /port-setup 创建的所有Port集成、Kubernetes资源和本地文件。

先决条件

检查以下内容,如果缺少则指导用户安装/配置:

  • kubectl - 已安装并配置了集群访问权限
  • helm - 已安装
  • gh - GitHub CLI 已安装并认证
  • 环境变量 设置:
    • PORT_CLIENT_ID
    • PORT_CLIENT_SECRET

一般指南

  • 在删除前与用户确认
  • 顺序重要 - 先停止同步,然后删除Port资源
  • 删除前检查存在性 以避免错误
  • 使用Port MCP工具 发现创建的内容
  • 用户操作与自动化:某些步骤需要用户操作(标记为“用户操作需要”) - 提供这些作为说明,然后 停止并等待用户确认 再继续下一步。

步骤0:发现环境

在销毁之前,发现存在的内容及其部署方式:

  1. GitOps工具:检查是否有ArgoCD(argocd 命名空间)或 Flux(flux-system 命名空间)
  2. 清单目录:检查Port相关的清单文件(例如,apps/port-*.yaml
  3. Port资源:使用Port MCP工具列出蓝图、实体、操作、集成
  4. GitHub资源:检查工作流(.github/workflows/port-*.yaml)和仓库秘密

GitOps工作流规则

重要:当检测到ArgoCD或Flux时,删除必须通过Git进行。

  1. 从Git删除清单 - 从清单目录中移除YAML文件
  2. 提交并推送 - GitOps工具将检测变化并自动删除资源
  3. 等待同步 - 验证资源已删除后再继续Port清理
  4. 然后删除Port资源 - 仅在同步停止后删除蓝图/实体/操作

这个顺序确保在删除Port资源之前,导出器停止同步。


第一部分:删除Kubernetes资源(先停止同步)

关键: 先删除K8s导出器以停止新实体同步到Port。

卸载Port K8s导出器

检查部署方法并相应删除:

使用ArgoCD/Flux(GitOps):

  1. 从Git删除清单文件:
rm <manifest-dir>/port-k8s-exporter.yaml
git add -A && git commit -m "移除 port-k8s-exporter" && git push
  1. 等待ArgoCD/Flux同步并删除资源
  2. 验证:kubectl get ns port-k8s-exporter 应该返回未找到
  3. 如果同步后命名空间仍然存在,手动删除:kubectl delete ns port-k8s-exporter

直接使用Helm(非GitOps):

helm uninstall port-k8s-exporter -n port-k8s-exporter
kubectl delete secret port-credentials -n port-k8s-exporter
kubectl delete externalsecret port-credentials -n port-k8s-exporter  # 如果使用ESO
kubectl delete namespace port-k8s-exporter

第二部分:删除Port自服务操作

删除为CRDs创建的所有自服务操作。在删除蓝图之前执行此操作,因为操作引用蓝图。

  1. 使用 mcp__port-vscode-eu__list_actions 查找符合模式的标识符的操作:
    • create_*, update_*, delete_*
  2. 对于每个操作,使用 mcp__port-vscode-eu__delete_action

第三部分:删除Port蓝图和实体(用户操作需要)

从数据模型页面删除在设置过程中创建的蓝图。

步骤:

  1. 使用 mcp__port-vscode-eu__list_blueprints 发现存在的蓝图
  2. 识别由 /port-setup 创建的蓝图(排除以 _ 开头的系统蓝图和默认值:cluster, namespace, workload
  3. 向用户展示列表
  4. 指导用户:
    • 转到 数据模型
    • 提示: 切换到 卡片 视图(右上角切换)以便更容易找到和删除蓝图
    • 对于每个蓝图,点击“…”菜单 -> 删除所有 [蓝图名称]
    • 这将在一个操作中删除所有实体和蓝图

停止并等待用户确认后再继续。


第四部分:删除GitHub工作流和秘密

删除工作流文件

查找Port相关的工作流并删除:

rm .github/workflows/port-*.yaml

删除仓库秘密

gh secret delete PORT_CLIENT_ID
gh secret delete PORT_CLIENT_SECRET
gh secret delete KUBE_CONFIG  # 如果创建了

提交并推送删除:

git add -A && git commit -m "移除Port自服务工作流" && git push

第五部分:删除GitHub集成映射(可选)

如果用户想移除GitHub集成:

  1. 转到Port数据源:https://app.port.io/settings/data-sources
  2. 找到GitHub集成
  3. 要么:
    • 移除特定资源映射(用户操作需要)
    • 或者卸载整个GitHub应用(用户操作需要)

验证

清理后,验证:

  1. Kuberneteskubectl get ns port-k8s-exporter 返回未找到
  2. Port:没有自定义蓝图、实体或操作保留
  3. GitHub:没有Port相关工作流或秘密
  4. 本地:仓库中没有Port清单