PSA/ee/temporal-workflows/k8s/deployment.yaml
Hermes 284313f908
Some checks are pending
Bidi Control Character Guard / bidi-control-guard (push) Waiting to run
Circular Dependency Check / Check for new circular dependencies (push) Waiting to run
Citus Migration Smoke / Combined migrations on single-node Citus (push) Waiting to run
E2E Fresh Install Tests / fresh-install-e2e (push) Waiting to run
ext-v2 guardrails / Run ext-v2 guard and ESLint (push) Waiting to run
Integration Tests / Check for relevant changes (push) Waiting to run
Integration Tests / ${{ (github.event_name == 'schedule' || github.event.inputs.suite == 'full') && 'Full integration suite' || 'Tier-1 integration subset' }} (push) Blocked by required conditions
Mobile checks / Mobile lint + typecheck (push) Waiting to run
Mobile checks / Mobile unit tests (push) Waiting to run
Mobile checks / Mobile dependency audit (report) (push) Waiting to run
Mobile checks / Mobile reproducibility checks (push) Waiting to run
Secrets guard (env backups) / Ensure no tracked env backup files (push) Waiting to run
Temporal Readiness / fast-readiness (push) Waiting to run
Temporal Readiness / docker-parity (push) Waiting to run
TypeScript Type Check / Nx affected typecheck (push) Waiting to run
Unit Tests / Skipped-test budget (push) Waiting to run
Unit Tests / Nx affected unit tests (push) Waiting to run
Unit Tests / Server unit coverage (informational) (push) Waiting to run
Validate Tenant Management Schema / Check for relevant changes (push) Waiting to run
Validate Tenant Management Schema / Validate Tenant Management Schema (push) Blocked by required conditions
EE Workflows Build Guard / ee-workflows-build-guard (push) Waiting to run
Initial import of AlgaPSA codebase from PSA server
Excluded: .git, node_modules, secrets/, compose.env, assemblyscript tgz

Source: /opt/alga-psa on psa.joliet.tech
2026-06-22 16:12:17 -05:00

216 lines
5.5 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
name: temporal-workflows-worker
namespace: temporal
labels:
app: temporal-workflows-worker
component: worker
spec:
replicas: 2
selector:
matchLabels:
app: temporal-workflows-worker
component: worker
template:
metadata:
labels:
app: temporal-workflows-worker
component: worker
spec:
imagePullSecrets:
- name: harbor-credentials
containers:
- name: worker
image: harbor.nineminds.com/nineminds/temporal-worker:e90ce14
imagePullPolicy: Always
command: ["npm", "run", "start"]
env:
- name: NODE_ENV
value: "production"
- name: LOG_LEVEL
value: "info"
- name: TEMPORAL_ADDRESS
value: "temporal-frontend.temporal.svc.cluster.local:7233"
- name: TEMPORAL_NAMESPACE
value: "default"
- name: TEMPORAL_TASK_QUEUE
value: "tenant-workflows"
# Database configuration (StackGres) - used by tenant/user activities
- name: DB_HOST
value: "pgvector.stackgres-pgvector.svc.cluster.local"
- name: DB_PORT
value: "5432"
- name: DB_NAME_SERVER
value: "server"
- name: DB_USER_SERVER
value: "app_user"
- name: DB_PASSWORD_SERVER
valueFrom:
secretKeyRef:
name: database-secrets
key: server-password
- name: DB_USER_ADMIN
value: "postgres"
- name: DB_PASSWORD_ADMIN
valueFrom:
secretKeyRef:
name: database-secrets
key: admin-password
# Legacy environment variables for compatibility
- name: DATABASE_URL
valueFrom:
secretKeyRef:
name: database-secrets
key: database-url
- name: ADMIN_DATABASE_URL
valueFrom:
secretKeyRef:
name: database-secrets
key: admin-database-url
- name: PAYLOADCMS_DATABASE_URL
valueFrom:
secretKeyRef:
name: database-secrets
key: payloadcms-database-url
- name: ENABLE_HEALTH_CHECK
value: "true"
- name: HEALTH_CHECK_PORT
value: "8080"
- name: MAX_CONCURRENT_ACTIVITIES
value: "10"
- name: MAX_CONCURRENT_WORKFLOWS
value: "10"
ports:
- containerPort: 8080
name: health
protocol: TCP
resources:
requests:
memory: "512Mi"
cpu: "200m"
limits:
memory: "1Gi"
cpu: "500m"
livenessProbe:
httpGet:
path: /health
port: 8080
initialDelaySeconds: 60
periodSeconds: 30
timeoutSeconds: 10
failureThreshold: 3
readinessProbe:
httpGet:
path: /ready
port: 8080
initialDelaySeconds: 30
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 3
securityContext:
runAsNonRoot: true
runAsUser: 1000
readOnlyRootFilesystem: true
allowPrivilegeEscalation: false
volumeMounts:
- name: tmp
mountPath: /tmp
volumes:
- name: tmp
emptyDir: {}
restartPolicy: Always
securityContext:
fsGroup: 1000
---
apiVersion: v1
kind: Service
metadata:
name: temporal-workflows-worker
namespace: temporal
labels:
app: temporal-workflows-worker
component: worker
spec:
selector:
app: temporal-workflows-worker
component: worker
ports:
- name: health
port: 8080
targetPort: 8080
protocol: TCP
type: ClusterIP
---
apiVersion: v1
kind: Secret
metadata:
name: database-secrets
namespace: temporal
type: Opaque
data:
# Base64 encoded database URLs for Alga PSA database
database-url: cG9zdGdyZXNxbDovL2FwcF91c2VyOjEyMUVENzY5LTMzQjctNDI1Mi04RDdBLTIyMjNDMTQ5MDI5OEBwZ3ZlY3Rvci5zdGFja2dyZXMtcGd2ZWN0b3Iuc3ZjLmNsdXN0ZXIubG9jYWw6NTQzMi9zZXJ2ZXI=
admin-database-url: cG9zdGdyZXNxbDovL3Bvc3RncmVzOmQ1NjItMzRmYi00OTMwLWIwNUBwZ3ZlY3Rvci5zdGFja2dyZXMtcGd2ZWN0b3Iuc3ZjLmNsdXN0ZXIubG9jYWw6NTQzMi9zZXJ2ZXI=
---
apiVersion: v1
kind: ConfigMap
metadata:
name: temporal-workflows-config
namespace: temporal
data:
temporal-address: "temporal-frontend.temporal.svc.cluster.local:7233"
temporal-namespace: "default"
task-queue: "tenant-workflows"
log-level: "info"
---
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: temporal-workflows-worker-pdb
namespace: temporal
spec:
minAvailable: 1
selector:
matchLabels:
app: temporal-workflows-worker
component: worker
---
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: temporal-workflows-worker-hpa
namespace: temporal
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: temporal-workflows-worker
minReplicas: 2
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 70
- type: Resource
resource:
name: memory
target:
type: Utilization
averageUtilization: 80
behavior:
scaleDown:
stabilizationWindowSeconds: 300
policies:
- type: Percent
value: 10
periodSeconds: 60
scaleUp:
stabilizationWindowSeconds: 60
policies:
- type: Percent
value: 50
periodSeconds: 60