feat: add cicd branch follower
This commit is contained in:
@@ -0,0 +1,180 @@
|
||||
# SPEC: PJ2026-01060703 CI/CD branch follower draft-2026-07-03-p0-branch-follower
|
||||
apiVersion: unidesk.pikapython.com/v1alpha1
|
||||
kind: CicdBranchFollowerRegistry
|
||||
metadata:
|
||||
id: unidesk-cicd-branch-followers
|
||||
owner: UniDesk
|
||||
specRef: PJ2026-01060703
|
||||
version: draft-2026-07-03-p0-branch-follower
|
||||
|
||||
controller:
|
||||
namespace: devops-infra
|
||||
kubeRoute: D601:k3s
|
||||
fieldManager: unidesk-cicd-branch-follower
|
||||
serviceAccountName: unidesk-cicd-branch-follower
|
||||
deploymentName: unidesk-cicd-branch-follower
|
||||
configMapName: unidesk-cicd-branch-follower-config
|
||||
stateConfigMapName: unidesk-cicd-branch-follower-state
|
||||
leaseName: unidesk-cicd-branch-follower
|
||||
image: 127.0.0.1:5000/hwlab/hwlab-ci-node-tools:node22-alpine-bun-v1
|
||||
labels:
|
||||
app.kubernetes.io/name: unidesk-cicd-branch-follower
|
||||
app.kubernetes.io/component: cicd-control-plane
|
||||
app.kubernetes.io/part-of: unidesk
|
||||
source:
|
||||
repository: pikasTech/unidesk
|
||||
branch: master
|
||||
gitMirrorReadUrl: http://git-mirror-http.devops-infra.svc.cluster.local:8080/pikasTech/unidesk.git
|
||||
sourceAuthority:
|
||||
mode: gitMirrorSnapshot
|
||||
resolver: k8s-git-mirror
|
||||
allowHostGit: false
|
||||
allowHostWorkspace: false
|
||||
allowGithubDirectInPipeline: false
|
||||
sourceSnapshot:
|
||||
stageRefPrefix: refs/unidesk/snapshots/unidesk-controller/{branch}
|
||||
missingObjectPolicy: fail-fast
|
||||
refreshPolicy: sync-before-snapshot
|
||||
loop:
|
||||
intervalSeconds: 30
|
||||
reconcileTimeoutSeconds: 110
|
||||
budgets:
|
||||
applyWaitSeconds: 120
|
||||
statusSeconds: 35
|
||||
runOnceSeconds: 120
|
||||
|
||||
followers:
|
||||
- id: hwlab-jd01-v03
|
||||
enabled: true
|
||||
adapter: hwlab-node-runtime
|
||||
description: Follow HWLAB v0.3 into the JD01 HWLAB node runtime.
|
||||
source:
|
||||
repository: pikasTech/HWLAB
|
||||
branch: v0.3
|
||||
branchRef: config/hwlab-node-lanes.yaml#lanes.v03.sourceBranch
|
||||
authorityRef: config/hwlab-node-lanes.yaml#lanes.v03.targets.JD01.git.readUrl
|
||||
snapshotPrefix: refs/unidesk/snapshots/hwlab-node-runtime/v0.3
|
||||
snapshotRef: config/hwlab-node-lanes.yaml#lanes.v03.targets.JD01.git.readUrl
|
||||
target:
|
||||
node: JD01
|
||||
lane: v03
|
||||
namespace: hwlab-v03
|
||||
configRefs:
|
||||
lane: config/hwlab-node-lanes.yaml#lanes.v03
|
||||
target: config/hwlab-node-lanes.yaml#lanes.v03.targets.JD01
|
||||
pipeline: config/hwlab-node-lanes.yaml#lanes.v03.targets.JD01.pipeline
|
||||
pipelineRunPrefix: config/hwlab-node-lanes.yaml#lanes.v03.targets.JD01.pipelineRunPrefix
|
||||
runtimeNamespace: config/hwlab-node-lanes.yaml#lanes.v03.targets.JD01.runtime.namespace
|
||||
budgets:
|
||||
endToEndSeconds: 120
|
||||
statusSeconds: 35
|
||||
triggerSeconds: 120
|
||||
sourceSyncSeconds: 20
|
||||
commands:
|
||||
plan:
|
||||
argv: ["bun", "scripts/cli.ts", "hwlab", "nodes", "control-plane", "trigger-current", "--node", "JD01", "--lane", "v03", "--dry-run", "--raw"]
|
||||
timeoutSeconds: 35
|
||||
status:
|
||||
argv: ["bun", "scripts/cli.ts", "hwlab", "nodes", "control-plane", "status", "--node", "JD01", "--lane", "v03", "--raw"]
|
||||
timeoutSeconds: 35
|
||||
trigger:
|
||||
argv: ["bun", "scripts/cli.ts", "hwlab", "nodes", "control-plane", "trigger-current", "--node", "JD01", "--lane", "v03", "--confirm", "--wait", "--raw"]
|
||||
timeoutSeconds: 120
|
||||
events:
|
||||
argv: ["bun", "scripts/cli.ts", "hwlab", "nodes", "control-plane", "status", "--node", "JD01", "--lane", "v03", "--full"]
|
||||
timeoutSeconds: 35
|
||||
logs:
|
||||
argv: ["bun", "scripts/cli.ts", "hwlab", "nodes", "control-plane", "status", "--node", "JD01", "--lane", "v03", "--full"]
|
||||
timeoutSeconds: 35
|
||||
closeout:
|
||||
checks: ["sourceSnapshot", "pipelineRun", "gitMirrorPostFlush", "gitops", "argo", "runtime", "publicHealth"]
|
||||
|
||||
- id: agentrun-d601-v02
|
||||
enabled: true
|
||||
adapter: agentrun-yaml-lane
|
||||
description: Follow AgentRun v0.2 into the D601 YAML-only runtime lane.
|
||||
source:
|
||||
repository: pikasTech/agentrun
|
||||
branch: v0.2
|
||||
branchRef: config/agentrun.yaml#controlPlane.lanes.v02.source.branch
|
||||
authorityRef: config/agentrun.yaml#controlPlane.lanes.v02.source.sourceAuthority
|
||||
snapshotPrefix: refs/unidesk/snapshots/agentrun-yaml-lane/v0.2
|
||||
snapshotRef: config/agentrun.yaml#controlPlane.lanes.v02.source.sourceSnapshot.stageRefPrefix
|
||||
target:
|
||||
node: D601
|
||||
lane: v02
|
||||
namespace: agentrun-v02
|
||||
configRefs:
|
||||
lane: config/agentrun.yaml#controlPlane.lanes.v02
|
||||
source: config/agentrun.yaml#controlPlane.lanes.v02.source
|
||||
runtime: config/agentrun.yaml#controlPlane.lanes.v02.runtime
|
||||
pipeline: config/agentrun.yaml#controlPlane.lanes.v02.ci.pipeline
|
||||
pipelineRunPrefix: config/agentrun.yaml#controlPlane.lanes.v02.ci.pipelineRunPrefix
|
||||
argoApplication: config/agentrun.yaml#controlPlane.lanes.v02.gitops.argoApplication
|
||||
budgets:
|
||||
endToEndSeconds: 120
|
||||
statusSeconds: 35
|
||||
triggerSeconds: 120
|
||||
sourceSyncSeconds: 20
|
||||
commands:
|
||||
plan:
|
||||
argv: ["bun", "scripts/cli.ts", "agentrun", "control-plane", "trigger-current", "--node", "D601", "--lane", "v02", "--dry-run", "--raw"]
|
||||
timeoutSeconds: 35
|
||||
status:
|
||||
argv: ["bun", "scripts/cli.ts", "agentrun", "control-plane", "status", "--node", "D601", "--lane", "v02", "--raw"]
|
||||
timeoutSeconds: 35
|
||||
trigger:
|
||||
argv: ["bun", "scripts/cli.ts", "agentrun", "control-plane", "trigger-current", "--node", "D601", "--lane", "v02", "--confirm", "--wait", "--raw"]
|
||||
timeoutSeconds: 120
|
||||
events:
|
||||
argv: ["bun", "scripts/cli.ts", "agentrun", "control-plane", "status", "--node", "D601", "--lane", "v02", "--full"]
|
||||
timeoutSeconds: 35
|
||||
logs:
|
||||
argv: ["bun", "scripts/cli.ts", "agentrun", "control-plane", "status", "--node", "D601", "--lane", "v02", "--full"]
|
||||
timeoutSeconds: 35
|
||||
closeout:
|
||||
checks: ["sourceSnapshot", "pipelineRun", "gitops", "argo", "manager", "runtimeHealth"]
|
||||
|
||||
- id: web-probe-sentinel-master
|
||||
enabled: true
|
||||
adapter: web-probe-sentinel-cicd
|
||||
description: Follow UniDesk master into the selected HWLAB web-probe sentinel runtime.
|
||||
source:
|
||||
repository: pikasTech/unidesk
|
||||
branch: master
|
||||
branchRef: config/hwlab-web-probe-sentinel/profiles.yaml#nodes.JD01.sentinels.jd01-web-probe-sentinel.cicd.source.branch
|
||||
authorityRef: config/hwlab-web-probe-sentinel/profiles.yaml#nodes.JD01.sentinels.jd01-web-probe-sentinel.cicd.sourceAuthority
|
||||
snapshotPrefix: refs/unidesk/snapshots/web-probe-sentinel/master
|
||||
snapshotRef: config/hwlab-web-probe-sentinel/profiles.yaml#nodes.JD01.sentinels.jd01-web-probe-sentinel.cicd.sourceSnapshot.stageRefPrefix
|
||||
target:
|
||||
node: JD01
|
||||
lane: v03
|
||||
namespace: hwlab-v03
|
||||
sentinel: jd01-web-probe-sentinel
|
||||
configRefs:
|
||||
sentinel: config/hwlab-web-probe-sentinel/profiles.yaml#nodes.JD01.sentinels.jd01-web-probe-sentinel.sentinel
|
||||
cicd: config/hwlab-web-probe-sentinel/profiles.yaml#nodes.JD01.sentinels.jd01-web-probe-sentinel.cicd
|
||||
monitorRoot: config/hwlab-node-lanes.yaml#lanes.v03.targets.JD01.observability.webProbe.monitorRoot
|
||||
budgets:
|
||||
endToEndSeconds: 120
|
||||
statusSeconds: 35
|
||||
triggerSeconds: 120
|
||||
sourceSyncSeconds: 20
|
||||
commands:
|
||||
plan:
|
||||
argv: ["bun", "scripts/cli.ts", "web-probe", "sentinel", "publish-current", "--node", "JD01", "--lane", "v03", "--sentinel", "jd01-web-probe-sentinel", "--dry-run", "--raw"]
|
||||
timeoutSeconds: 35
|
||||
status:
|
||||
argv: ["bun", "scripts/cli.ts", "web-probe", "sentinel", "control-plane", "status", "--node", "JD01", "--lane", "v03", "--sentinel", "jd01-web-probe-sentinel", "--raw"]
|
||||
timeoutSeconds: 35
|
||||
trigger:
|
||||
argv: ["bun", "scripts/cli.ts", "web-probe", "sentinel", "publish-current", "--node", "JD01", "--lane", "v03", "--sentinel", "jd01-web-probe-sentinel", "--confirm", "--wait", "--raw"]
|
||||
timeoutSeconds: 120
|
||||
events:
|
||||
argv: ["bun", "scripts/cli.ts", "web-probe", "sentinel", "control-plane", "status", "--node", "JD01", "--lane", "v03", "--sentinel", "jd01-web-probe-sentinel", "--full"]
|
||||
timeoutSeconds: 35
|
||||
logs:
|
||||
argv: ["bun", "scripts/cli.ts", "web-probe", "sentinel", "report", "--node", "JD01", "--lane", "v03", "--sentinel", "jd01-web-probe-sentinel", "--latest", "--view", "summary", "--raw"]
|
||||
timeoutSeconds: 35
|
||||
closeout:
|
||||
checks: ["sourceMirror", "imageRegistry", "gitops", "argo", "runtimeHealthEndpoint", "dashboard", "report"]
|
||||
Reference in New Issue
Block a user