跳到正文
cccskills
免费在 GitHub 公开

mock-cluster

Stand up or scale the local CAPD mock cluster and deploy the bex operator into it. Use when the user asks to create, inspect, or resize the repository's local development cluster. Optional argument: scale N.

中文简介正在准备中。当前显示原文说明。

bex-co/bex星标 574(GitHub 574 + cccskills 0)
集成工具Kubernetes

实测评分 未实测

查看安装方法

包含的文件(2)

  • SKILL.md3.7 KB
  • agents/openai.yaml207 B

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Bring up the local mock of the Hetzner substrate and deploy the bex operator into it.

If $ARGUMENTS is scale N: just run bash scripts/mock-cluster.sh scale N, then show kubectl get nodes (with KUBECONFIG=infra/local/bex.kubeconfig) and stop.

Otherwise, run the full bring-up:

  1. bash scripts/mock-cluster.sh — kind infra cluster + Cluster API + CAPD app cluster, plus the app-cluster baseline the operator needs: Calico, coredns/calico-kube-controllers control-plane pins, local-path default StorageClass, cert-manager (prod's pinned version; make deploy's webhook cert requires it). This can take several minutes; it writes the app-cluster kubeconfig to infra/local/bex.kubeconfig.
  2. Use that kubeconfig for every following command: export KUBECONFIG=$PWD/infra/local/bex.kubeconfig (or --kubeconfig). Never print its contents.
  3. Build and load the operator image (CAPD nodes can't pull local-only images):
    • ( cd lego/operator && make docker-build IMG=bex-operator:dev )
    • docker save bex-operator:dev -o /tmp/bex-op.tar
    • For each node (strip the node/ prefix — kubectl get nodes -o name returns node/<name> but docker cp/docker exec need the bare container name):
      for n in $(kubectl get nodes -o name | cut -d/ -f2); do
        docker cp /tmp/bex-op.tar "$n":/op.tar && docker exec "$n" ctr -n k8s.io images import /op.tar
      done
      
  4. ( cd lego/operator && make deploy IMG=bex-operator:dev ) — deploys to ns bex-system with BEX_RUNTIME=kubernetes. The bex-ssh-gateway IngressRouteTCP fails without Traefik CRDs — expected and harmless on the mock; everything else applies. Then kubectl apply -f deploy/gitops/base/operator-apps-rbac.yaml — the apps-namespace bex-operator-apps Role/RoleBinding is Argo-managed in prod and absent from the operator's kustomize config; without it the manager crashloops on "failed to wait for … caches to sync" (its namespace-scoped Secret/Job watches in default are forbidden; w1/043).
  5. Local-CAPD-only fixes (re-apply all three after every make deploy — it reverts them; w1/043):
    • Label the control-plane node into the platform pool (the manifest's nodeSelector is bex.co/pool=platform, and the operator must sit on the control-plane node because OrbStack/Calico can't route cross-node pod→apiserver; see docs/ADR004-app-deployment.md): kubectl label node <control-plane-node> bex.co/pool=platform --overwrite
    • Pin the operator to the control-plane node:
      kubectl -n bex-system patch deploy bex-controller-manager --type merge -p \
       '{"spec":{"template":{"spec":{"nodeSelector":{"node-role.kubernetes.io/control-plane":""},
        "tolerations":[{"key":"node-role.kubernetes.io/control-plane","effect":"NoSchedule"}]}}}}'
      
    • The manifest sets imagePullPolicy: Always, which can never be satisfied by the ctr-imported local image (ErrImagePull) — override it:
      kubectl -n bex-system patch deploy bex-controller-manager --type strategic -p \
       '{"spec":{"template":{"spec":{"containers":[{"name":"manager","imagePullPolicy":"IfNotPresent"}]}}}}'
      
  6. kubectl -n bex-system rollout status deploy/bex-controller-manager — wait for Ready.

Finish by reporting: node list, operator pod status, and the one-liners to deploy an App (/deploy-app) and to scale machines (/mock-cluster scale N).

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Deploy a bex App to the current Kubernetes cluster and verify it reaches Ready. Use when the user asks to deploy a render.yaml (or legacy bex.yml) or the sample app and validate the rollout end to end. Optional argument: path to render.yaml.

中文简介正在准备中。当前显示原文说明。

bex-co/bex5742026年10月26日 更新

Deploy a local checkout to a production Hetzner App using the manual image-import runbook. Use when the user asks to ship local working-tree code to a live bex App rather than deploy from remote Git. Arguments are the local repo path and app name.

中文简介正在准备中。当前显示原文说明。

bex-co/bex5742026年10月26日 更新

loopx

免费

Autonomously drain a `.pm` workstream — triage every open item (milestone or inbox-note task), then work it to done, park it in `blocked/`, or delete it as invalid, until the workstream has no open items left. Use when the user asks to "loop", drain, or clear a whole workstream's backlog (e.g. `/loopx w1`). Sequential, not interval-based; for a timed poll use /loop.

中文简介正在准备中。当前显示原文说明。

bex-co/bex5742026年10月26日 更新

mermaid

免费

Create concise, syntax-verified Mermaid architecture diagrams. Use when the user asks to diagram a repository component, document, system, dependency flow, or supplied description in Mermaid.

中文简介正在准备中。当前显示原文说明。

bex-co/bex5742026年10月26日 更新

pm

免费

Inspect and maintain the repository's .pm workstreams, inbox notes, milestones, and tasks. Use when the user asks for PM board status or requests a supported board mutation such as creating, promoting, adding, or completing work.

中文简介正在准备中。当前显示原文说明。

bex-co/bex5742026年10月26日 更新

Analyze and decompose a product topic into a text-only proposal for the repository's .pm board. Use when the user wants to pressure-test scope, size milestones, identify dependencies, or prepare exact PM board commands without writing board files.

中文简介正在准备中。当前显示原文说明。

bex-co/bex5742026年10月26日 更新

查看 bex-co 的全部技能

报告此技能的问题