Files
pikasTech-unidesk/config/cicd-branch-followers.yaml
T
2026-07-03 07:47:04 +00:00

252 lines
11 KiB
YAML

# 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: JD01: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
gitMirrorCachePvcName: hwlab-git-mirror-cache
githubSsh:
secretName: git-mirror-github-ssh
privateKeySecretKey: ssh-privatekey
proxyHost: 10.42.0.1
proxyPort: 10808
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
nativeStatus:
source:
gitMirrorReadUrl: http://git-mirror-http.devops-infra.svc.cluster.local:8080/pikasTech/HWLAB.git
gitMirrorNamespace: devops-infra
gitMirrorDeployment: git-mirror-http
repoPath: /cache/pikasTech/HWLAB.git
tekton:
namespace: hwlab-ci
pipelineRunPrefix: hwlab-jd01-v03-ci-poll
argo:
namespace: argocd
application: hwlab-node-v03
runtime:
namespace: hwlab-v03
workloads:
- kind: Deployment
name: hwlab-cloud-api
sourceCommit:
labels: ["hwlab.pikastech.local/source-commit", "hwlab.pikastech.local/gitops-render-source-commit"]
annotations: ["hwlab.pikastech.local/source-commit", "hwlab.pikastech.local/gitops-render-source-commit"]
podLabels: ["hwlab.pikastech.local/source-commit", "hwlab.pikastech.local/gitops-render-source-commit"]
podAnnotations: ["hwlab.pikastech.local/source-commit", "hwlab.pikastech.local/gitops-render-source-commit", "hwlab.pikastech.local/boot-commit"]
env: ["HWLAB_COMMIT_ID"]
closeout:
checks: ["sourceSnapshot", "pipelineRun", "gitMirrorPostFlush", "gitops", "argo", "runtime", "publicHealth"]
- id: agentrun-jd01-v02
enabled: true
adapter: agentrun-yaml-lane
description: Follow AgentRun v0.2 into the JD01 YAML-only runtime lane.
source:
repository: pikasTech/agentrun
branch: v0.2
branchRef: config/agentrun.yaml#controlPlane.lanes.jd01-v02.source.branch
authorityRef: config/agentrun.yaml#controlPlane.lanes.jd01-v02.source.sourceAuthority
snapshotPrefix: refs/unidesk/snapshots/agentrun-yaml-lane/v0.2
snapshotRef: config/agentrun.yaml#controlPlane.lanes.jd01-v02.source.sourceSnapshot.stageRefPrefix
target:
node: JD01
lane: jd01-v02
namespace: agentrun-v02
configRefs:
lane: config/agentrun.yaml#controlPlane.lanes.jd01-v02
source: config/agentrun.yaml#controlPlane.lanes.jd01-v02.source
runtime: config/agentrun.yaml#controlPlane.lanes.jd01-v02.runtime
pipeline: config/agentrun.yaml#controlPlane.lanes.jd01-v02.ci.pipeline
pipelineRunPrefix: config/agentrun.yaml#controlPlane.lanes.jd01-v02.ci.pipelineRunPrefix
argoApplication: config/agentrun.yaml#controlPlane.lanes.jd01-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", "JD01", "--lane", "jd01-v02", "--dry-run", "--raw"]
timeoutSeconds: 35
status:
argv: ["bun", "scripts/cli.ts", "agentrun", "control-plane", "status", "--node", "JD01", "--lane", "jd01-v02", "--raw"]
timeoutSeconds: 35
trigger:
argv: ["bun", "scripts/cli.ts", "agentrun", "control-plane", "trigger-current", "--node", "JD01", "--lane", "jd01-v02", "--confirm", "--wait", "--raw"]
timeoutSeconds: 120
events:
argv: ["bun", "scripts/cli.ts", "agentrun", "control-plane", "status", "--node", "JD01", "--lane", "jd01-v02", "--full"]
timeoutSeconds: 35
logs:
argv: ["bun", "scripts/cli.ts", "agentrun", "control-plane", "status", "--node", "JD01", "--lane", "jd01-v02", "--full"]
timeoutSeconds: 35
nativeStatus:
source:
gitMirrorReadUrl: http://git-mirror-http.devops-infra.svc.cluster.local:8080/pikasTech/agentrun.git
gitMirrorNamespace: devops-infra
gitMirrorDeployment: git-mirror-http
repoPath: /cache/pikasTech/agentrun.git
tekton:
namespace: agentrun-ci
pipelineRunPrefix: agentrun-jd01-v02-ci
argo:
namespace: argocd
application: agentrun-jd01-v02
runtime:
namespace: agentrun-v02
workloads:
- kind: Deployment
name: agentrun-mgr
sourceCommit:
annotations: ["agentrun.pikastech.local/source-commit"]
podAnnotations: ["agentrun.pikastech.local/source-commit"]
env: ["AGENTRUN_SOURCE_COMMIT", "AGENTRUN_BOOT_COMMIT"]
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
nativeStatus:
source:
gitMirrorReadUrl: http://git-mirror-http.devops-infra.svc.cluster.local:8080/pikasTech/unidesk.git
gitMirrorNamespace: devops-infra
gitMirrorDeployment: git-mirror-http
repoPath: /cache/pikasTech/unidesk.git
tekton:
namespace: devops-infra
pipelineRunPrefix: hwlab-web-probe-sentinel-jd01-web-probe-sentinel
argo:
namespace: argocd
application: hwlab-web-probe-sentinel-jd01
runtime:
namespace: hwlab-v03
workloads:
- kind: Deployment
name: hwlab-web-probe-sentinel-jd01
sourceCommit:
annotations: ["unidesk.ai/source-commit", "hwlab.pikastech.local/source-commit"]
podAnnotations: ["unidesk.ai/source-commit", "hwlab.pikastech.local/source-commit"]
env: ["UNIDESK_SOURCE_COMMIT", "WEB_PROBE_SENTINEL_SOURCE_COMMIT"]
closeout:
checks: ["sourceMirror", "imageRegistry", "gitops", "argo", "runtimeHealthEndpoint", "dashboard", "report"]