Compare commits
11 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9d0a3c2d6e | |||
| 16f3791cb6 | |||
| ce0600b8c2 | |||
| c550ece6b4 | |||
| 886e81b256 | |||
| 0521e56c47 | |||
| 1d655e965d | |||
| 41f05c11a4 | |||
| 1ea9e1c685 | |||
| 97e0a11575 | |||
| 72a0745dd1 |
@@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"version": 1,
|
||||||
|
"kind": "PlatformInfraGiteaGitOpsState",
|
||||||
|
"targetId": "NC01",
|
||||||
|
"sourceCommit": "843c2383e931dc3ac1fcbe4ec965271866397a3e",
|
||||||
|
"desiredManifestSha256": "cb6998e2c6d69e4664f5a49547ebbebcb793939532ab67918a58ce79356b5fd6",
|
||||||
|
"bootstrapApplicationSha256": "ff7155b4fca474025c29099a305fca2fd53c82d8092e3e3954177f99e1875fc7"
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"version": 1,
|
||||||
|
"kind": "UniDeskHostReleaseState",
|
||||||
|
"serviceRef": "services.decisionCenter",
|
||||||
|
"sourceCommit": "843c2383e931dc3ac1fcbe4ec965271866397a3e",
|
||||||
|
"digest": "sha256:aa211698c2071548e84bd1a4cfb2c0f6d27c962b34e612f8a1f21c7aba49a7d0",
|
||||||
|
"digestRef": "127.0.0.1:5000/unidesk/decision-center@sha256:aa211698c2071548e84bd1a4cfb2c0f6d27c962b34e612f8a1f21c7aba49a7d0"
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"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
@@ -1,237 +0,0 @@
|
|||||||
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
|
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
{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
@@ -0,0 +1 @@
|
|||||||
|
{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]}}}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
{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}}]}}}}
|
||||||
Reference in New Issue
Block a user