Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions deployment/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@ apiVersion: v2
name: protes
description: A proTES Helm chart for Kubernetes
type: application
version: 0.1.0
appVersion: 1.16.0
version: 2.0.0
appVersion: 2.0.0
3 changes: 2 additions & 1 deletion deployment/templates/flower/flower-deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,5 @@ spec:
- image: {{ .Values.flower.image }}
command: ['flower']
args: ['--broker=amqp://guest:guest@rabbitmq:5672//', '--port=5555', '--basic_auth={{ .Values.flower.basicAuth }}']
name: flower
name: flower
resources: {{- toYaml .Values.flower.resources | nindent 10 }}
41 changes: 41 additions & 0 deletions deployment/templates/mongodb/mongo-init-script.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: mongo-init-script
data:
init-script.js: |
db = db.getSiblingDB('taskStore');
dbproTES = db.getSiblingDB('{{ tpl .Values.mongodb.secret.databaseName . }}')

dbproTES.createUser({
user: "{{ tpl .Values.mongodb.secret.databaseUser . }}",
pwd: "{{ tpl .Values.mongodb.secret.databasePassword . }}",
roles: [
{
role: "readWrite",
db: "{{ tpl .Values.mongodb.secret.databaseName . }}"
}
]
});

// Create the 'tasks' and 'service_info' collections
// Database configuration from https://github.com/elixir-cloud-aai/proTES/blob/2f2d88915d9948b0d2ffbe6799af01bbc413b00a/pro_tes/config.yaml#L30
db.createCollection('tasks');
db.runs.createIndex(
{ task_id: 1, worker_id: 1 },
{ unique: true, sparse: true }
);
db.createCollection('service_info');
db.service_info.createIndex(
{ id: 1 }
);

dbproWES.createCollection('runs');
dbproWES.runs.createIndex(
{ run_id: 1, task_id: 1 },
{ unique: true, sparse: true }
);
dbproWES.createCollection('service_info');
dbproWES.service_info.createIndex(
{ id: 1}
);
38 changes: 23 additions & 15 deletions deployment/templates/mongodb/mongodb-deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,25 +16,30 @@ spec:
spec:
containers:
- env:
- name: MONGODB_USER
- name: MONGO_INITDB_ROOT_USERNAME
valueFrom:
secretKeyRef:
key: database-user
key: databaseRootUsername
name: {{ .Values.mongodb.appName }}
- name: MONGODB_PASSWORD
- name: MONGO_INITDB_ROOT_PASSWORD
valueFrom:
secretKeyRef:
key: database-password
key: databaseRootPassword
name: {{ .Values.mongodb.appName }}
- name: MONGODB_ADMIN_PASSWORD
- name: MONGO_INITDB_DATABASE
valueFrom:
secretKeyRef:
key: database-admin-password
key: databaseName
name: {{ .Values.mongodb.appName }}
- name: MONGODB_DATABASE
- name: MONGO_APP_USERNAME
valueFrom:
secretKeyRef:
key: database-name
key: databaseUser
name: {{ .Values.mongodb.appName }}
- name: MONGO_APP_PASSWORD
valueFrom:
secretKeyRef:
key: databasePassword
name: {{ .Values.mongodb.appName }}
image: {{ .Values.mongodb.image }}
imagePullPolicy: IfNotPresent
Expand All @@ -57,20 +62,23 @@ spec:
- '-i'
- '-c'
- >-
mongo 127.0.0.1:27017/$MONGODB_DATABASE -u $MONGODB_USER -p
$MONGODB_PASSWORD --eval="quit()"
mongosh --host 127.0.0.1:27017 -u $MONGO_INITDB_ROOT_USERNAME -p $MONGO_INITDB_ROOT_PASSWORD --authenticationDatabase admin $MONGO_INITDB_DATABASE --eval="quit()"
failureThreshold: 3
initialDelaySeconds: 3
initialDelaySeconds: 30
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
resources:
limits:
memory: 512Mi
resources: {{- toYaml .Values.mongodb.resources | nindent 12 }}
volumeMounts:
- mountPath: /var/lib/mongodb/data
- mountPath: /data/db
name: mongodb-data
- name: init-script
mountPath: /docker-entrypoint-initdb.d/init-script.js
subPath: init-script.js
volumes:
- name: mongodb-data
persistentVolumeClaim:
claimName: {{ .Values.mongodb.appName }}-volume
- name: init-script
configMap:
name: mongo-init-script
2 changes: 1 addition & 1 deletion deployment/templates/mongodb/mongodb-pvc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ metadata:
name: {{ .Values.mongodb.appName }}-volume
spec:
accessModes:
- ReadWriteMany
- {{ .Values.storageAccessMode }}
resources:
requests:
storage: {{ .Values.mongodb.volumeSize }}
8 changes: 4 additions & 4 deletions deployment/templates/mongodb/mongodb-secret.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ type: Opaque
metadata:
name: {{ .Values.mongodb.appName }}
data:
database-admin-password: {{ .Values.mongodb.databaseAdminPassword | b64enc }}
database-name: {{ .Values.mongodb.databaseName | b64enc }}
database-password: {{ .Values.mongodb.databasePassword | b64enc }}
database-user: {{ .Values.mongodb.databaseUser | b64enc }}
{{- range $key, $val := .Values.mongodb.secret }}
"{{ $key }}": "{{ tpl $val $ | b64enc }}"
{{- end }}

15 changes: 5 additions & 10 deletions deployment/templates/protes/celery-deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ spec:
image: busybox
command: [ 'mkdir' ]
args: [ '-p', '/data/db', '/data/output', '/data/tmp' ]
resources: {{- toYaml .Values.celeryWorker.initResources | nindent 10 }}
volumeMounts:
- mountPath: /data
name: protes-volume
Expand All @@ -34,29 +35,23 @@ spec:
- name: MONGO_USERNAME
valueFrom:
secretKeyRef:
key: database-user
key: databaseUser
name: {{ .Values.mongodb.appName }}
- name: MONGO_PASSWORD
valueFrom:
secretKeyRef:
key: database-password
key: databasePassword
name: {{ .Values.mongodb.appName }}
- name: MONGO_DBNAME
valueFrom:
secretKeyRef:
key: database-name
key: databaseName
name: {{ .Values.mongodb.appName }}
- name: RABBIT_HOST
value: {{ .Values.rabbitmq.appName }}
- name: RABBIT_PORT
value: "5672"
resources:
requests:
memory: "512Mi"
cpu: "300m"
limits:
memory: "8Gi"
cpu: "1"
resources: {{- toYaml .Values.celeryWorker.resources | nindent 10 }}
volumeMounts:
- mountPath: /data
name: protes-volume
Expand Down
20 changes: 17 additions & 3 deletions deployment/templates/protes/protes-deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,24 @@ spec:
labels:
app: {{ .Values.protes.appName }}
spec:
{{- if eq .Values.storageAccessMode "ReadWriteOnce" }}
affinity:
podAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app
operator: In
values:
- {{ .Values.celeryWorker.appName }}
topologyKey: "kubernetes.io/hostname"
{{- end }}
initContainers:
- name: vol-init
image: busybox
command: [ 'mkdir' ]
args: [ '-p', '/data/db', '/data/specs' ]
resources: {{- toYaml .Values.protes.initResources | nindent 10 }}
volumeMounts:
- mountPath: /data
name: protes-volume
Expand All @@ -35,22 +48,23 @@ spec:
- name: MONGO_USERNAME
valueFrom:
secretKeyRef:
key: database-user
key: databaseUser
name: {{ .Values.mongodb.appName }}
- name: MONGO_PASSWORD
valueFrom:
secretKeyRef:
key: database-password
key: databasePassword
name: {{ .Values.mongodb.appName }}
- name: MONGO_DBNAME
valueFrom:
secretKeyRef:
key: database-name
key: databaseName
name: {{ .Values.mongodb.appName }}
- name: RABBIT_HOST
value: {{ .Values.rabbitmq.appName }}
- name: RABBIT_PORT
value: "5672"
resources: {{- toYaml .Values.protes.resources | nindent 10 }}
livenessProbe:
tcpSocket:
port: protes-port
Expand Down
4 changes: 2 additions & 2 deletions deployment/templates/protes/protes-volume.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ metadata:
name: {{ .Values.protes.appName}}-volume
spec:
accessModes:
- ReadWriteMany
- {{ .Values.storageAccessMode }}
resources:
requests:
storage: '1Gi'
storage: '1Gi'
3 changes: 2 additions & 1 deletion deployment/templates/rabbitmq/rabbitmq-deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,11 @@ spec:
containers:
- name: rabbitmq
image: {{ .Values.rabbitmq.image }}
resources: {{- toYaml .Values.rabbitmq.resources | nindent 10 }}
volumeMounts:
- mountPath: /var/lib/rabbitmq
name: rabbitmq-volume
volumes:
- name: rabbitmq-volume
persistentVolumeClaim:
claimName: {{ .Values.rabbitmq.appName }}-volume
claimName: {{ .Values.rabbitmq.appName }}-volume
2 changes: 1 addition & 1 deletion deployment/templates/rabbitmq/rabbitmq-pvc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ metadata:
name: {{ .Values.rabbitmq.appName }}-volume
spec:
accessModes:
- ReadWriteMany
- {{ .Values.storageAccessMode }}
resources:
requests:
storage: {{ .Values.rabbitmq.volumeSize }}
62 changes: 54 additions & 8 deletions deployment/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,35 +2,81 @@
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.

applicationDomain: rahtiapp.fi
applicationDomain: ""

# which cluster type proTES is going to be deployed on
# it can be either 'kubernetes' or 'openshift'
clusterType: openshift
clusterType: kubernetes

# mongodb-pvc.yaml/rabbitmq-pvc.yaml, change to ReadWriteMany if storageClass can do RWX
storageAccessMode: ReadWriteOnce

flower:
appName: protes-flower
basicAuth: admin:admin
image: endocode/flower
resources:
limits:
cpu: 200m
memory: 1Gi
requests:
cpu: 200m
memory: 500Mi

protes:
appName: protes
image: elixircloud/protes:latest
initResources:
limits:
memory: 16Mi
cpu: 50m
requests:
memory: 16Mi
resources:
limits:
memory: 256Mi
cpu: 100m
requests:
memory: 256Mi
cpu: 100m

celeryWorker:
appName: celery-worker
image: elixircloud/protes:latest
initResources:
limits:
memory: 16Mi
cpu: 50m
requests:
memory: 16Mi
cpu: 50m
resources:
limits:
cpu: 200m
memory: 256Mi
requests:
cpu: 100m
memory: 256Mi

mongodb:
appName: mongodb
databaseAdminPassword: adminpasswd
databaseName: protes-db
databasePassword: protes-db-passwd
databaseUser: protes-user
secret:
databaseRootUsername: prowes-adm
databaseRootPassword: adminpasswd
databaseUser: prowes-user
databasePassword: prowes-db-passwd
databaseName: prowes-db
volumeSize: 1Gi
image: centos/mongodb-36-centos7
image: docker.io/library/mongo:noble

rabbitmq:
appName: rabbitmq
volumeSize: 1Gi
image: rabbitmq:3-management
image: rabbitmq:4.1.4-management
resources:
limits:
cpu: 200m
memory: 1Gi
requests:
cpu: 200m
memory: 256Mi