1 Commits

Author SHA1 Message Date
unidesk-temporal-ci f7d5adeac4 chore(temporal): publish 6016400b5d 2026-07-22 18:52:19 +00:00
14 changed files with 237 additions and 6092 deletions
@@ -1,8 +0,0 @@
{
"version": 1,
"kind": "PlatformInfraGiteaGitOpsState",
"targetId": "NC01",
"sourceCommit": "843c2383e931dc3ac1fcbe4ec965271866397a3e",
"desiredManifestSha256": "cb6998e2c6d69e4664f5a49547ebbebcb793939532ab67918a58ce79356b5fd6",
"bootstrapApplicationSha256": "ff7155b4fca474025c29099a305fca2fd53c82d8092e3e3954177f99e1875fc7"
}
@@ -1,14 +0,0 @@
{
"version": 1,
"kind": "Sub2RankReleaseState",
"service": "sub2rank",
"sourceCommit": "49b65d533775f933724b93497b123ff769f44b47",
"configSha256": "e9c7d1835f006e44ac0f82caa942aa6f1921d64a63b4f1717e7907a2c1548f36",
"digest": "sha256:1a67ff1b8ed7eafc2838337d863bcbea8897fa5a105187bbe93701c8d1d384de",
"digestRef": "127.0.0.1:5000/sub2rank/sub2rank@sha256:1a67ff1b8ed7eafc2838337d863bcbea8897fa5a105187bbe93701c8d1d384de",
"manifestPath": "deploy/gitops/platform-infra/sub2rank-development-nc01/resources.yaml",
"automaticCredit": {
"enabled": false,
"mode": "dry-run"
}
}
@@ -1,14 +0,0 @@
{
"version": 1,
"kind": "Sub2RankReleaseState",
"service": "sub2rank",
"sourceCommit": "49b65d533775f933724b93497b123ff769f44b47",
"configSha256": "e9c7d1835f006e44ac0f82caa942aa6f1921d64a63b4f1717e7907a2c1548f36",
"digest": "sha256:2fd51714ff4acafbeeff24188b35772356d726fd9da242d4505e7c19aa6ca0f1",
"digestRef": "127.0.0.1:5000/sub2rank/sub2rank@sha256:2fd51714ff4acafbeeff24188b35772356d726fd9da242d4505e7c19aa6ca0f1",
"manifestPath": "deploy/gitops/platform-infra/sub2rank-nc01/resources.yaml",
"automaticCredit": {
"enabled": false,
"mode": "dry-run"
}
}
@@ -1,8 +0,0 @@
{
"version": 1,
"kind": "UniDeskHostReleaseState",
"serviceRef": "services.decisionCenter",
"sourceCommit": "843c2383e931dc3ac1fcbe4ec965271866397a3e",
"digest": "sha256:aa211698c2071548e84bd1a4cfb2c0f6d27c962b34e612f8a1f21c7aba49a7d0",
"digestRef": "127.0.0.1:5000/unidesk/decision-center@sha256:aa211698c2071548e84bd1a4cfb2c0f6d27c962b34e612f8a1f21c7aba49a7d0"
}
@@ -1,8 +0,0 @@
{
"version": 1,
"kind": "UniDeskHostReleaseState",
"serviceRef": "services.todoNote",
"sourceCommit": "13ec1114a75592f9218ec95bd951a042e2e22b28",
"digest": "sha256:dfe9f9a8089611ecea1743e30f37f6e9a8f436d323c499847173fb3231e8967d",
"digestRef": "127.0.0.1:5000/unidesk/todo-note@sha256:dfe9f9a8089611ecea1743e30f37f6e9a8f436d323c499847173fb3231e8967d"
}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,237 @@
apiVersion: v1
kind: Namespace
metadata:
name: temporal
labels:
app.kubernetes.io/part-of: temporal
---
apiVersion: v1
kind: Service
metadata:
name: temporal-frontend
namespace: temporal
spec:
selector:
app.kubernetes.io/name: temporal
ports:
- name: grpc
port: 7233
targetPort: grpc
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: temporal
namespace: temporal
labels:
app.kubernetes.io/name: temporal
app.kubernetes.io/part-of: temporal
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: temporal
template:
metadata:
labels:
app.kubernetes.io/name: temporal
app.kubernetes.io/part-of: temporal
unidesk.ai/source-commit: 6016400b5d4ed843f0be9cc346e9c291a93a5c07
spec:
enableServiceLinks: false
shareProcessNamespace: true
containers:
- name: temporal
image: temporalio/auto-setup:1.28.1
imagePullPolicy: IfNotPresent
ports:
- name: grpc
containerPort: 7233
env:
- name: DB
value: postgres12
- name: DB_PORT
value: "5432"
- name: POSTGRES_SEEDS
value: 10.42.0.1
- name: POSTGRES_USER
valueFrom:
secretKeyRef:
name: temporal-database
key: user
- name: POSTGRES_PWD
valueFrom:
secretKeyRef:
name: temporal-database
key: password
- name: DBNAME
valueFrom:
secretKeyRef:
name: temporal-database
key: database
- name: VISIBILITY_DBNAME
valueFrom:
secretKeyRef:
name: temporal-database
key: visibilityDatabase
- name: POSTGRES_TLS_ENABLED
value: "true"
- name: POSTGRES_TLS_DISABLE_HOST_VERIFICATION
value: "true"
- name: SKIP_DB_CREATE
value: "true"
- name: DYNAMIC_CONFIG_FILE_PATH
value: /etc/temporal/config/dynamicconfig/docker.yaml
readinessProbe:
tcpSocket:
port: grpc
initialDelaySeconds: 10
periodSeconds: 5
livenessProbe:
tcpSocket:
port: grpc
initialDelaySeconds: 30
periodSeconds: 10
---
apiVersion: v1
kind: Service
metadata:
name: temporal-ui
namespace: temporal
spec:
selector:
app.kubernetes.io/name: temporal-ui
ports:
- name: http
port: 8080
targetPort: auth
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: temporal-ui
namespace: temporal
labels:
app.kubernetes.io/name: temporal-ui
app.kubernetes.io/part-of: temporal
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: temporal-ui
template:
metadata:
labels:
app.kubernetes.io/name: temporal-ui
app.kubernetes.io/part-of: temporal
unidesk.ai/source-commit: 6016400b5d4ed843f0be9cc346e9c291a93a5c07
spec:
enableServiceLinks: false
containers:
- name: temporal-ui
image: temporalio/ui:2.52.1
imagePullPolicy: IfNotPresent
ports:
- name: http
containerPort: 8080
env:
- name: TEMPORAL_ADDRESS
value: temporal-frontend:7233
- name: TEMPORAL_CORS_ORIGINS
value: https://temporal.hwpod.com
readinessProbe:
httpGet:
path: /
port: http
initialDelaySeconds: 5
periodSeconds: 5
livenessProbe:
httpGet:
path: /
port: http
initialDelaySeconds: 20
periodSeconds: 10
- name: auth-proxy
image: caddy:2.10.2-alpine
imagePullPolicy: IfNotPresent
command:
- sh
- -ec
- |
password="$(cat /run/secrets/admin-password)"
hash="$(caddy hash-password --plaintext "$password")"
cat >/tmp/Caddyfile <<EOF
:8081 {
handle /healthz {
respond 200
}
handle {
basic_auth {
admin $hash
}
reverse_proxy 127.0.0.1:8080
}
}
EOF
exec caddy run --config /tmp/Caddyfile --adapter caddyfile
ports:
- name: auth
containerPort: 8081
readinessProbe:
tcpSocket:
port: auth
initialDelaySeconds: 3
periodSeconds: 5
livenessProbe:
tcpSocket:
port: auth
initialDelaySeconds: 15
periodSeconds: 10
volumeMounts:
- name: web-admin-password
mountPath: /run/secrets/admin-password
subPath: password
readOnly: true
volumes:
- name: web-admin-password
secret:
secretName: temporal-web-admin
---
apiVersion: batch/v1
kind: Job
metadata:
name: temporal-logical-namespaces
namespace: temporal
annotations:
argocd.argoproj.io/hook: PostSync
argocd.argoproj.io/hook-delete-policy: BeforeHookCreation,HookSucceeded
labels:
app.kubernetes.io/name: temporal-logical-namespaces
app.kubernetes.io/part-of: temporal
spec:
backoffLimit: 1
template:
metadata:
labels:
app.kubernetes.io/name: temporal-logical-namespaces
app.kubernetes.io/part-of: temporal
unidesk.ai/source-commit: 6016400b5d4ed843f0be9cc346e9c291a93a5c07
spec:
restartPolicy: Never
containers:
- name: configure
image: temporalio/auto-setup:1.28.1
imagePullPolicy: IfNotPresent
command:
- sh
- -ec
- |
attempts=60
until temporal operator cluster health --address temporal-frontend:7233 >/dev/null 2>&1; do
attempts=$((attempts - 1))
test "$attempts" -gt 0
sleep 5
done
if ! temporal operator namespace describe --address temporal-frontend:7233 --namespace unidesk >/dev/null 2>&1; then
temporal operator namespace create --address temporal-frontend:7233 --namespace unidesk --retention 7d
fi
@@ -1,3 +0,0 @@
{apiVersion: v1,kind: Service,metadata: {name: decision-center,namespace: unidesk,labels: {app.kubernetes.io/name: decision-center,app.kubernetes.io/part-of: unidesk,app.kubernetes.io/managed-by: argocd,unidesk.ai/deployment: unidesk-host,unidesk.ai/target: NC01}},spec: {type: ClusterIP,selector: {app.kubernetes.io/name: decision-center},ports: [{name: http,port: 4277,targetPort: http}]}}
---
{apiVersion: apps/v1,kind: Deployment,metadata: {name: decision-center,namespace: unidesk,labels: &labels {app.kubernetes.io/name: decision-center,app.kubernetes.io/part-of: unidesk,app.kubernetes.io/managed-by: argocd,unidesk.ai/deployment: unidesk-host,unidesk.ai/target: NC01}},spec: {replicas: 1,selector: {matchLabels: {app.kubernetes.io/name: decision-center}},template: {metadata: {labels: *labels,annotations: {unidesk.ai/source-commit: 843c2383e931dc3ac1fcbe4ec965271866397a3e,unidesk.ai/config-fingerprint: sha256:fc8916a7d214f0ef}},spec: {initContainers: [{name: wait-database,image: postgres:16-alpine,imagePullPolicy: IfNotPresent,env: [{name: DATABASE_URL,valueFrom: {secretKeyRef: {name: decision-center-runtime-secrets,key: DATABASE_URL}}}],command: [sh,"-ec","db_url=\"$(printf '%s' \"$DATABASE_URL\" | sed 's/[?&]uselibpqcompat=true//g')\"; until psql \"$db_url\" -Atqc 'SELECT 1' >/dev/null 2>&1; do sleep 2; done"]}],containers: [{name: decision-center,image: 127.0.0.1:5000/unidesk/decision-center@sha256:aa211698c2071548e84bd1a4cfb2c0f6d27c962b34e612f8a1f21c7aba49a7d0,imagePullPolicy: IfNotPresent,ports: [{name: http,containerPort: 4277}],env: [{name: HOST,value: 0.0.0.0},{name: PORT,value: "4277"},{name: DATABASE_URL,valueFrom: {secretKeyRef: {name: decision-center-runtime-secrets,key: DATABASE_URL}}},{name: DATABASE_POOL_MAX,value: "4"},{name: UNIDESK_DEPLOY_SERVICE_ID,value: decision-center},{name: UNIDESK_DEPLOY_REPO,value: https://github.com/pikasTech/unidesk},{name: UNIDESK_DEPLOY_COMMIT,value: 843c2383e931dc3ac1fcbe4ec965271866397a3e},{name: UNIDESK_DEPLOY_REQUESTED_COMMIT,value: 843c2383e931dc3ac1fcbe4ec965271866397a3e},{name: LOG_FILE,value: /var/log/unidesk/decision-center.jsonl},{name: DECISION_CENTER_STORAGE_PRIMARY,value: github-repo},{name: DECISION_CENTER_STORAGE_HEALTH_REFRESH_MS,value: "300000"},{name: DECISION_CENTER_GIT_REPO,value: pikasTech/decision-center-data},{name: DECISION_CENTER_GIT_REPO_SSH_URL,value: git@github.com:pikasTech/decision-center-data.git},{name: DECISION_CENTER_GIT_BRANCH,value: main},{name: DECISION_CENTER_GIT_BASE_PATH,value: data},{name: DECISION_CENTER_GIT_WORKTREE,value: /var/lib/unidesk/decision-center/repo},{name: DECISION_CENTER_GIT_AUTHOR_NAME,value: UniDesk Decision Center},{name: DECISION_CENTER_GIT_AUTHOR_EMAIL,value: decision-center@unidesk.local},{name: DECISION_CENTER_GIT_COMMIT_PREFIX,value: "decision-center:"},{name: GIT_SSH_COMMAND,value: ssh -i /var/lib/unidesk/decision-center/ssh/ssh-privatekey -o UserKnownHostsFile=/var/lib/unidesk/decision-center/ssh/known_hosts -o IdentitiesOnly=yes -o StrictHostKeyChecking=yes}],volumeMounts: [{name: logs,mountPath: /var/log/unidesk},{name: github-ssh,mountPath: /var/lib/unidesk/decision-center/ssh,readOnly: true}],readinessProbe: {httpGet: {path: /health,port: http},periodSeconds: 5,timeoutSeconds: 3,failureThreshold: 18},livenessProbe: {httpGet: {path: /live,port: http},periodSeconds: 10,timeoutSeconds: 3,failureThreshold: 6},startupProbe: {httpGet: {path: /live,port: http},periodSeconds: 5,timeoutSeconds: 3,failureThreshold: 30},resources: {requests: {cpu: 50m,memory: 96Mi},limits: {memory: 512Mi}}}],volumes: [{name: logs,emptyDir: {}},{name: github-ssh,secret: {secretName: decision-center-github-ssh,defaultMode: 256}}]}}}}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
{apiVersion: argoproj.io/v1alpha1,kind: Application,metadata: {name: platform-infra-gitea-nc01,namespace: argocd,labels: {app.kubernetes.io/managed-by: unidesk,app.kubernetes.io/part-of: platform-infra}},spec: {project: default,source: {repoURL: http://gitea-http.devops-infra.svc.cluster.local:3000/mirrors/pikasTech-unidesk.git,targetRevision: unidesk-host-gitops,path: deploy/gitops/platform-infra/gitea-nc01},destination: {server: https://kubernetes.default.svc,namespace: devops-infra},syncPolicy: {automated: {prune: true,selfHeal: true},syncOptions: [CreateNamespace=true]}}}
@@ -1,3 +0,0 @@
{apiVersion: v1,kind: Service,metadata: {name: todo-note,namespace: unidesk,labels: {app.kubernetes.io/name: todo-note,app.kubernetes.io/part-of: unidesk,app.kubernetes.io/managed-by: argocd,unidesk.ai/deployment: unidesk-host,unidesk.ai/target: NC01}},spec: {type: ClusterIP,selector: {app.kubernetes.io/name: todo-note},ports: [{name: http,port: 4288,targetPort: http}]}}
---
{apiVersion: apps/v1,kind: Deployment,metadata: {name: todo-note,namespace: unidesk,labels: &labels {app.kubernetes.io/name: todo-note,app.kubernetes.io/part-of: unidesk,app.kubernetes.io/managed-by: argocd,unidesk.ai/deployment: unidesk-host,unidesk.ai/target: NC01}},spec: {replicas: 1,selector: {matchLabels: {app.kubernetes.io/name: todo-note}},template: {metadata: {labels: *labels,annotations: {unidesk.ai/source-commit: 13ec1114a75592f9218ec95bd951a042e2e22b28,unidesk.ai/config-fingerprint: sha256:276b660c8a8934ec}},spec: {initContainers: [{name: wait-database,image: postgres:16-alpine,imagePullPolicy: IfNotPresent,env: [{name: DATABASE_URL,valueFrom: {secretKeyRef: {name: decision-center-runtime-secrets,key: DATABASE_URL}}}],command: [sh,"-ec","db_url=\"$(printf '%s' \"$DATABASE_URL\" | sed 's/[?&]uselibpqcompat=true//g')\"; until psql \"$db_url\" -Atqc 'SELECT 1' >/dev/null 2>&1; do sleep 2; done"]}],containers: [{name: todo-note,image: 127.0.0.1:5000/unidesk/todo-note@sha256:dfe9f9a8089611ecea1743e30f37f6e9a8f436d323c499847173fb3231e8967d,imagePullPolicy: IfNotPresent,ports: [{name: http,containerPort: 4288}],env: [{name: HOST,value: 0.0.0.0},{name: PORT,value: "4288"},{name: DATABASE_URL,valueFrom: {secretKeyRef: {name: decision-center-runtime-secrets,key: DATABASE_URL}}},{name: DATABASE_POOL_MAX,value: "4"},{name: UNIDESK_DEPLOY_SERVICE_ID,value: todo-note},{name: UNIDESK_DEPLOY_REPO,value: https://github.com/pikasTech/unidesk},{name: UNIDESK_DEPLOY_COMMIT,value: 13ec1114a75592f9218ec95bd951a042e2e22b28},{name: UNIDESK_DEPLOY_REQUESTED_COMMIT,value: 13ec1114a75592f9218ec95bd951a042e2e22b28},{name: LOG_FILE,value: /var/log/unidesk/todo-note.jsonl},{name: TODO_NOTE_STORAGE_PRIMARY,value: github-repo},{name: TODO_NOTE_REMINDER_CLAUDEQQ_ENABLED,value: "true"},{name: TODO_NOTE_REMINDER_CLAUDEQQ_BASE_URL,value: http://backend-core:8080/api/microservices/claudeqq/proxy},{name: TODO_NOTE_REMINDER_CLAUDEQQ_TARGET_TYPE,value: private},{name: TODO_NOTE_REMINDER_CLAUDEQQ_USER_ID,value: "645275593"},{name: TODO_NOTE_REMINDER_CLAUDEQQ_GROUP_ID,value: ""},{name: TODO_NOTE_REMINDER_LEAD_MINUTES,value: "10"},{name: TODO_NOTE_REMINDER_SCAN_INTERVAL_MS,value: "30000"},{name: TODO_NOTE_REMINDER_CLAUDEQQ_TIMEOUT_MS,value: "15000"},{name: TODO_NOTE_REMINDER_CLAUDEQQ_SEND_ATTEMPTS,value: "3"},{name: TODO_NOTE_GIT_REPO,value: pikasTech/decision-center-data},{name: TODO_NOTE_GIT_REPO_SSH_URL,value: git@github.com:pikasTech/decision-center-data.git},{name: TODO_NOTE_GIT_BRANCH,value: main},{name: TODO_NOTE_GIT_BASE_PATH,value: todo-note},{name: TODO_NOTE_GIT_WORKTREE,value: /var/lib/unidesk/todo-note/repo},{name: TODO_NOTE_GIT_AUTHOR_NAME,value: UniDesk Todo Note},{name: TODO_NOTE_GIT_AUTHOR_EMAIL,value: todo-note@unidesk.local},{name: TODO_NOTE_GIT_COMMIT_PREFIX,value: "todo-note:"},{name: GIT_SSH_COMMAND,value: ssh -i /var/lib/unidesk/todo-note/ssh/ssh-privatekey -o UserKnownHostsFile=/var/lib/unidesk/todo-note/ssh/known_hosts -o IdentitiesOnly=yes -o StrictHostKeyChecking=yes}],volumeMounts: [{name: logs,mountPath: /var/log/unidesk},{name: github-ssh,mountPath: /var/lib/unidesk/todo-note/ssh,readOnly: true}],readinessProbe: {httpGet: {path: /health,port: http},periodSeconds: 5,timeoutSeconds: 3,failureThreshold: 18},livenessProbe: {httpGet: {path: /live,port: http},periodSeconds: 10,timeoutSeconds: 3,failureThreshold: 6},startupProbe: {httpGet: {path: /live,port: http},periodSeconds: 5,timeoutSeconds: 3,failureThreshold: 30},resources: {requests: {cpu: 50m,memory: 96Mi},limits: {memory: 768Mi}}}],volumes: [{name: logs,emptyDir: {}},{name: github-ssh,secret: {secretName: decision-center-github-ssh,defaultMode: 256}}]}}}}