temporal: Remove from tos1 and add proteus worker
This commit is contained in:
@@ -6,15 +6,15 @@ commonLabels:
|
|||||||
|
|
||||||
releases:
|
releases:
|
||||||
- name: manifests
|
- name: manifests
|
||||||
namespace: helmsman
|
namespace: proteus
|
||||||
chart: manifests
|
chart: manifests
|
||||||
condition: helmsman.enabled
|
condition: proteus.enabled
|
||||||
missingFileHandler: Info
|
missingFileHandler: Info
|
||||||
values:
|
values:
|
||||||
- ../values/env.yaml
|
- ../values/env.yaml
|
||||||
- ../values/env-{{ requiredEnv "ARGOCD_ENV_CLUSTER_NAME" }}.yaml
|
- ../values/env-{{ requiredEnv "ARGOCD_ENV_CLUSTER_NAME" }}.yaml
|
||||||
- ../values/helmsman/env.yaml.gotmpl
|
- ../values/proteus/env.yaml.gotmpl
|
||||||
- ../values/helmsman/env-{{ requiredEnv "ARGOCD_ENV_CLUSTER_NAME" }}.yaml.gotmpl
|
- ../values/proteus/env-{{ requiredEnv "ARGOCD_ENV_CLUSTER_NAME" }}.yaml.gotmpl
|
||||||
hooks:
|
hooks:
|
||||||
- events: [ prepare, cleanup ]
|
- events: [ prepare, cleanup ]
|
||||||
showlogs: true
|
showlogs: true
|
||||||
@@ -23,5 +23,5 @@ releases:
|
|||||||
- '{{`{{ if eq .Event.Name "prepare" }}build{{ else }}clean{{ end }}`}}'
|
- '{{`{{ if eq .Event.Name "prepare" }}build{{ else }}clean{{ end }}`}}'
|
||||||
- '{{`{{ .Release.Chart }}`}}'
|
- '{{`{{ .Release.Chart }}`}}'
|
||||||
- '{{`{{ .Environment.Name }}`}}'
|
- '{{`{{ .Environment.Name }}`}}'
|
||||||
- ../values/helmsman/manifests
|
- ../values/proteus/manifests
|
||||||
- manifests
|
- manifests
|
||||||
@@ -1,87 +0,0 @@
|
|||||||
# Both PVCs are the same cephfs `data` filesystem mounted at root: /data exposes the
|
|
||||||
# hdd/data tree (ingest output), /work exposes the kraken/fvcom tree (case rundirs).
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolume
|
|
||||||
metadata:
|
|
||||||
name: pv-helmsman-data
|
|
||||||
spec:
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteMany
|
|
||||||
capacity:
|
|
||||||
storage: 1Gi
|
|
||||||
claimRef:
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
name: ekman-data
|
|
||||||
namespace: helmsman
|
|
||||||
csi:
|
|
||||||
driver: rook-ceph.cephfs.csi.ceph.com
|
|
||||||
nodeStageSecretRef:
|
|
||||||
name: rook-csi-cephfs-node
|
|
||||||
namespace: rook-ceph
|
|
||||||
volumeAttributes:
|
|
||||||
clusterID: rook-ceph
|
|
||||||
fsName: data
|
|
||||||
rootPath: /
|
|
||||||
staticVolume: "true"
|
|
||||||
volumeHandle: pv-helmsman-data
|
|
||||||
persistentVolumeReclaimPolicy: Retain
|
|
||||||
volumeMode: Filesystem
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
metadata:
|
|
||||||
name: ekman-data
|
|
||||||
namespace: helmsman
|
|
||||||
spec:
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteMany
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: 1Gi
|
|
||||||
storageClassName: ""
|
|
||||||
volumeMode: Filesystem
|
|
||||||
volumeName: pv-helmsman-data
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolume
|
|
||||||
metadata:
|
|
||||||
name: pv-helmsman-work
|
|
||||||
spec:
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteMany
|
|
||||||
capacity:
|
|
||||||
storage: 1Gi
|
|
||||||
claimRef:
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
name: ekman-work
|
|
||||||
namespace: helmsman
|
|
||||||
csi:
|
|
||||||
driver: rook-ceph.cephfs.csi.ceph.com
|
|
||||||
nodeStageSecretRef:
|
|
||||||
name: rook-csi-cephfs-node
|
|
||||||
namespace: rook-ceph
|
|
||||||
volumeAttributes:
|
|
||||||
clusterID: rook-ceph
|
|
||||||
fsName: data
|
|
||||||
rootPath: /
|
|
||||||
staticVolume: "true"
|
|
||||||
volumeHandle: pv-helmsman-work
|
|
||||||
persistentVolumeReclaimPolicy: Retain
|
|
||||||
volumeMode: Filesystem
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
metadata:
|
|
||||||
name: ekman-work
|
|
||||||
namespace: helmsman
|
|
||||||
spec:
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteMany
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: 1Gi
|
|
||||||
storageClassName: ""
|
|
||||||
volumeMode: Filesystem
|
|
||||||
volumeName: pv-helmsman-work
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
# Kyverno (sync-slurm-token) clones the real token from prod-atlantis into this secret.
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Secret
|
|
||||||
metadata:
|
|
||||||
name: slurm-access-token
|
|
||||||
namespace: helmsman
|
|
||||||
annotations:
|
|
||||||
kyverno/clone: "true"
|
|
||||||
type: Opaque
|
|
||||||
data: {}
|
|
||||||
@@ -1,55 +0,0 @@
|
|||||||
apiVersion: temporal.io/v1alpha1
|
|
||||||
kind: WorkerDeployment
|
|
||||||
metadata:
|
|
||||||
name: helmsman
|
|
||||||
namespace: helmsman
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
workerOptions:
|
|
||||||
temporalNamespace: prod-helmsman
|
|
||||||
connectionRef:
|
|
||||||
name: temporal
|
|
||||||
rollout:
|
|
||||||
strategy: AllAtOnce
|
|
||||||
sunset: {}
|
|
||||||
template:
|
|
||||||
spec:
|
|
||||||
securityContext:
|
|
||||||
runAsUser: 0
|
|
||||||
runAsGroup: 0
|
|
||||||
containers:
|
|
||||||
- name: helmsman
|
|
||||||
image: git.oceanbox.io/oceanbox/churn/helmsman:v2.3.3
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
memory: 1Gi
|
|
||||||
limits:
|
|
||||||
memory: 8Gi
|
|
||||||
env:
|
|
||||||
- name: CHURN_TOOLS
|
|
||||||
value: binary
|
|
||||||
- name: DATA_ROOT
|
|
||||||
value: /data/hdd/data
|
|
||||||
- name: DATA_DIR
|
|
||||||
value: /work/kraken/fvcom/nml
|
|
||||||
- name: SLURM_BASE_URL
|
|
||||||
value: https://slurmrestd.ekman.oceanbox.io/
|
|
||||||
- name: SLURM_API
|
|
||||||
value: /slurm/v0.0.42/
|
|
||||||
- name: SLURM_TOKEN
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: slurm-access-token
|
|
||||||
key: token
|
|
||||||
volumeMounts:
|
|
||||||
- name: data
|
|
||||||
mountPath: /data
|
|
||||||
- name: work
|
|
||||||
mountPath: /work
|
|
||||||
volumes:
|
|
||||||
- name: data
|
|
||||||
persistentVolumeClaim:
|
|
||||||
claimName: ekman-data
|
|
||||||
- name: work
|
|
||||||
persistentVolumeClaim:
|
|
||||||
claimName: ekman-work
|
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
helmsman:
|
proteus:
|
||||||
enabled: true
|
enabled: true
|
||||||
@@ -1,3 +1,3 @@
|
|||||||
helmsman:
|
proteus:
|
||||||
enabled: false
|
enabled: false
|
||||||
autosync: false
|
autosync: false
|
||||||
+1
-1
@@ -2,6 +2,6 @@ apiVersion: temporal.io/v1alpha1
|
|||||||
kind: Connection
|
kind: Connection
|
||||||
metadata:
|
metadata:
|
||||||
name: temporal
|
name: temporal
|
||||||
namespace: helmsman
|
namespace: proteus
|
||||||
spec:
|
spec:
|
||||||
hostPort: temporal-frontend.temporal:7233
|
hostPort: temporal-frontend.temporal:7233
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
apiVersion: argoproj.io/v1alpha1
|
apiVersion: argoproj.io/v1alpha1
|
||||||
kind: Application
|
kind: Application
|
||||||
metadata:
|
metadata:
|
||||||
name: helmsman
|
name: proteus
|
||||||
namespace: argocd
|
namespace: argocd
|
||||||
annotations:
|
annotations:
|
||||||
argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true
|
argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true
|
||||||
@@ -10,7 +10,7 @@ metadata:
|
|||||||
- resources-finalizer.argocd.argoproj.io
|
- resources-finalizer.argocd.argoproj.io
|
||||||
spec:
|
spec:
|
||||||
destination:
|
destination:
|
||||||
namespace: helmsman
|
namespace: proteus
|
||||||
server: 'https://kubernetes.default.svc'
|
server: 'https://kubernetes.default.svc'
|
||||||
sources:
|
sources:
|
||||||
- repoURL: {{ .Values.clusterConfig.manifests }}
|
- repoURL: {{ .Values.clusterConfig.manifests }}
|
||||||
@@ -24,7 +24,7 @@ spec:
|
|||||||
- name: HELMFILE_ENVIRONMENT
|
- name: HELMFILE_ENVIRONMENT
|
||||||
value: default
|
value: default
|
||||||
- name: HELMFILE_FILE_PATH
|
- name: HELMFILE_FILE_PATH
|
||||||
value: helmsman.yaml.gotmpl
|
value: proteus.yaml.gotmpl
|
||||||
project: sys
|
project: sys
|
||||||
syncPolicy:
|
syncPolicy:
|
||||||
managedNamespaceMetadata:
|
managedNamespaceMetadata:
|
||||||
@@ -33,7 +33,7 @@ spec:
|
|||||||
syncOptions:
|
syncOptions:
|
||||||
- CreateNamespace=true
|
- CreateNamespace=true
|
||||||
- ApplyOutOfSyncOnly=true
|
- ApplyOutOfSyncOnly=true
|
||||||
{{- if .Values.helmsman.autosync }}
|
{{- if .Values.proteus.autosync }}
|
||||||
automated:
|
automated:
|
||||||
prune: true
|
prune: true
|
||||||
{{- end }}
|
{{- end }}
|
||||||
@@ -0,0 +1,55 @@
|
|||||||
|
# TODO: the SA the temporal-worker-controller assigns to the pod (assumed `default`).
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: Role
|
||||||
|
metadata:
|
||||||
|
name: proteus-dev-queue
|
||||||
|
namespace: dev-queue
|
||||||
|
rules:
|
||||||
|
- apiGroups: ["batch"]
|
||||||
|
resources: ["jobs"]
|
||||||
|
verbs: ["create", "delete", "get", "list", "watch"]
|
||||||
|
- apiGroups: [""]
|
||||||
|
resources: ["pods", "pods/log"]
|
||||||
|
verbs: ["get", "list"]
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: RoleBinding
|
||||||
|
metadata:
|
||||||
|
name: proteus-dev-queue
|
||||||
|
namespace: dev-queue
|
||||||
|
roleRef:
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
kind: Role
|
||||||
|
name: proteus-dev-queue
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: default
|
||||||
|
namespace: proteus
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: Role
|
||||||
|
metadata:
|
||||||
|
name: proteus-prod-queue
|
||||||
|
namespace: prod-queue
|
||||||
|
rules:
|
||||||
|
- apiGroups: ["batch"]
|
||||||
|
resources: ["jobs"]
|
||||||
|
verbs: ["create", "delete", "get", "list", "watch"]
|
||||||
|
- apiGroups: [""]
|
||||||
|
resources: ["pods", "pods/log"]
|
||||||
|
verbs: ["get", "list"]
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: RoleBinding
|
||||||
|
metadata:
|
||||||
|
name: proteus-prod-queue
|
||||||
|
namespace: prod-queue
|
||||||
|
roleRef:
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
kind: Role
|
||||||
|
name: proteus-prod-queue
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: default
|
||||||
|
namespace: proteus
|
||||||
@@ -0,0 +1,138 @@
|
|||||||
|
# TEMPORAL_NAMESPACE : {env}-atlantis
|
||||||
|
# ARCHIVE_PVC : the queue's archive PVC (prod+beta -> prod-queue, staging -> dev-queue)
|
||||||
|
# PROTEUS_EVENTS_QUEUE : {env}-proteus-job-events (queue the env's Atlantis binding reads)
|
||||||
|
# RABBITMQ_CONNSTRING secret : the broker that env's Atlantis consumes from (prod+beta share prod)
|
||||||
|
# ---
|
||||||
|
# apiVersion: temporal.io/v1alpha1
|
||||||
|
# kind: WorkerDeployment
|
||||||
|
# metadata:
|
||||||
|
# name: proteus-prod
|
||||||
|
# namespace: proteus
|
||||||
|
# spec:
|
||||||
|
# replicas: 1
|
||||||
|
# workerOptions:
|
||||||
|
# temporalNamespace: prod-atlantis
|
||||||
|
# connectionRef:
|
||||||
|
# name: temporal
|
||||||
|
# rollout:
|
||||||
|
# strategy: AllAtOnce
|
||||||
|
# sunset: {}
|
||||||
|
# template:
|
||||||
|
# spec:
|
||||||
|
# securityContext:
|
||||||
|
# runAsUser: 0
|
||||||
|
# runAsGroup: 0
|
||||||
|
# containers:
|
||||||
|
# - name: proteus
|
||||||
|
# image: git.oceanbox.io/oceanbox/poseidon/proteus:CHANGEME
|
||||||
|
# resources:
|
||||||
|
# requests:
|
||||||
|
# memory: 256Mi
|
||||||
|
# limits:
|
||||||
|
# memory: 1Gi
|
||||||
|
# env:
|
||||||
|
# - name: TEMPORAL_TASK_QUEUES
|
||||||
|
# value: plume,xtract
|
||||||
|
# - name: TEMPORAL_NAMESPACE
|
||||||
|
# value: prod-atlantis
|
||||||
|
# - name: APP_ENV
|
||||||
|
# value: prod
|
||||||
|
# - name: ARCHIVE_PVC
|
||||||
|
# value: prod-queue-ceph-archives
|
||||||
|
# - name: PROTEUS_EVENTS_QUEUE
|
||||||
|
# value: prod-proteus-job-events
|
||||||
|
# - name: RABBITMQ_CONNSTRING
|
||||||
|
# valueFrom:
|
||||||
|
# secretKeyRef:
|
||||||
|
# name: proteus-rabbitmq-prod
|
||||||
|
# key: connString
|
||||||
|
# ---
|
||||||
|
# apiVersion: temporal.io/v1alpha1
|
||||||
|
# kind: WorkerDeployment
|
||||||
|
# metadata:
|
||||||
|
# name: proteus-beta
|
||||||
|
# namespace: proteus
|
||||||
|
# spec:
|
||||||
|
# replicas: 1
|
||||||
|
# workerOptions:
|
||||||
|
# temporalNamespace: beta-atlantis
|
||||||
|
# connectionRef:
|
||||||
|
# name: temporal
|
||||||
|
# rollout:
|
||||||
|
# strategy: AllAtOnce
|
||||||
|
# sunset: {}
|
||||||
|
# template:
|
||||||
|
# spec:
|
||||||
|
# securityContext:
|
||||||
|
# runAsUser: 0
|
||||||
|
# runAsGroup: 0
|
||||||
|
# containers:
|
||||||
|
# - name: proteus
|
||||||
|
# image: git.oceanbox.io/oceanbox/poseidon/proteus:CHANGEME
|
||||||
|
# resources:
|
||||||
|
# requests:
|
||||||
|
# memory: 256Mi
|
||||||
|
# limits:
|
||||||
|
# memory: 1Gi
|
||||||
|
# env:
|
||||||
|
# - name: TEMPORAL_TASK_QUEUES
|
||||||
|
# value: plume,xtract
|
||||||
|
# - name: TEMPORAL_NAMESPACE
|
||||||
|
# value: beta-atlantis
|
||||||
|
# - name: APP_ENV
|
||||||
|
# value: beta
|
||||||
|
# # beta schedules into prod-queue (same as prod), so the same archive PVC.
|
||||||
|
# - name: ARCHIVE_PVC
|
||||||
|
# value: prod-queue-ceph-archives
|
||||||
|
# - name: PROTEUS_EVENTS_QUEUE
|
||||||
|
# value: beta-proteus-job-events
|
||||||
|
# # beta shares the prod broker (its Atlantis binding uses prod-atlantis-rabbitmq).
|
||||||
|
# - name: RABBITMQ_CONNSTRING
|
||||||
|
# valueFrom:
|
||||||
|
# secretKeyRef:
|
||||||
|
# name: proteus-rabbitmq-prod
|
||||||
|
# key: connString
|
||||||
|
# ---
|
||||||
|
apiVersion: temporal.io/v1alpha1
|
||||||
|
kind: WorkerDeployment
|
||||||
|
metadata:
|
||||||
|
name: proteus-staging
|
||||||
|
namespace: proteus
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
workerOptions:
|
||||||
|
temporalNamespace: staging-atlantis
|
||||||
|
connectionRef:
|
||||||
|
name: temporal
|
||||||
|
rollout:
|
||||||
|
strategy: AllAtOnce
|
||||||
|
sunset: {}
|
||||||
|
template:
|
||||||
|
spec:
|
||||||
|
securityContext:
|
||||||
|
runAsUser: 0
|
||||||
|
runAsGroup: 0
|
||||||
|
containers:
|
||||||
|
- name: proteus
|
||||||
|
image: git.oceanbox.io/oceanbox/poseidon/proteus:CHANGEME
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
memory: 256Mi
|
||||||
|
limits:
|
||||||
|
memory: 1Gi
|
||||||
|
env:
|
||||||
|
- name: TEMPORAL_TASK_QUEUES
|
||||||
|
value: plume,xtract
|
||||||
|
- name: TEMPORAL_NAMESPACE
|
||||||
|
value: staging-atlantis
|
||||||
|
- name: APP_ENV
|
||||||
|
value: staging
|
||||||
|
- name: ARCHIVE_PVC
|
||||||
|
value: dev-queue-ceph-archives
|
||||||
|
- name: PROTEUS_EVENTS_QUEUE
|
||||||
|
value: staging-proteus-job-events
|
||||||
|
- name: RABBITMQ_CONNSTRING
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: proteus-rabbitmq-staging
|
||||||
|
key: connString
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
temporal:
|
temporal:
|
||||||
enabled: true
|
enabled: false
|
||||||
autosync: false
|
autosync: false
|
||||||
ingress: true
|
ingress: false
|
||||||
|
|||||||
Reference in New Issue
Block a user