diff --git a/functions/kubernetes/charts/shuffle/templates/orborus/orborus-cm-env.yaml b/functions/kubernetes/charts/shuffle/templates/orborus/orborus-cm-env.yaml index 504b674d..df43e519 100644 --- a/functions/kubernetes/charts/shuffle/templates/orborus/orborus-cm-env.yaml +++ b/functions/kubernetes/charts/shuffle/templates/orborus/orborus-cm-env.yaml @@ -13,7 +13,66 @@ data: TZ: "{{ .Values.shuffle.timezone }}" BASE_URL: "http://{{ include "shuffle.backend.name" . }}.{{ .Release.Namespace }}.svc.cluster.local:{{ .Values.backend.containerPorts.http }}" KUBERNETES_NAMESPACE: "{{ .Release.Namespace }}" - KUBERNETES_SERVICE_ACCOUNT: {{ include "shuffle.orborus.serviceAccount.name" . }} - SHUFFLE_WORKER_IMAGE: "{{ include "shuffle.worker.image" . }}" REGISTRY_URL: "{{ .Values.shuffle.appRegistry }}" - SHUFFLE_SWARM_CONFIG: run + + # Shuffle worker configuration + SHUFFLE_WORKER_IMAGE: {{ include "shuffle.worker.image" . | quote }} + SHUFFLE_WORKER_SERVICE_ACCOUNT_NAME: {{ include "shuffle.worker.serviceAccount.name" . | quote }}" + {{- if .Values.worker.podSecurityContext.enabled }} + SHUFFLE_WORKER_POD_SECURITY_CONTEXT: {{ omit .Values.worker.podSecurityContext "enabled" | mustToJson | quote }} + {{- end }} + {{- if .Values.worker.containerSecurityContext.enabled }} + SHUFFLE_WORKER_CONTAINER_SECURITY_CONTEXT: {{ include "common.compatibility.renderSecurityContext" (dict "secContext" .Values.worker.containerSecurityContext "context" $) | fromYaml | mustToJson | quote }} + {{- end }} + + # Shuffle worker resources + {{- $workerResources := (.Values.worker.resources | default (include "common.resources.preset" (dict "type" .Values.worker.resourcesPreset)) | fromYaml) -}} + {{- if $workerResources.requests.cpu }} + SHUFFLE_WORKER_CPU_REQUEST: {{ $workerResources.requests.cpu | quote }} + {{- end }} + {{- if $workerResources.requests.memory}} + SHUFFLE_WORKER_MEMORY_REQUEST: {{ $workerResources.requests.memory | quote }} + {{- end }} + {{- if (index $workerResources.requests "ephemeral-storage") }} + SHUFFLE_WORKER_EPHEMERAL_STORAGE_REQUEST: {{ (index $workerResources.requests "ephemeral-storage") | quote }} + {{- end }} + {{- if $workerResources.limits.cpu }} + SHUFFLE_WORKER_CPU_LIMIT: {{ $workerResources.limits.cpu | quote }} + {{- end }} + {{- if $workerResources.limits.memory}} + SHUFFLE_WORKER_MEMORY_LIMIT: {{ $workerResources.limits.memory | quote }} + {{- end }} + {{- if (index $workerResources.limits "ephemeral-storage") }} + SHUFFLE_WORKER_EPHEMERAL_STORAGE_LIMIT: {{ (index $workerResources.limits "ephemeral-storage") | quote }} + {{- end }} + + # Shuffle app configuration + SHUFFLE_APP_EXPOSED_PORT: {{ .Values.app.exposedContainerPort | quote }} + SHUFFLE_APP_SERVICE_ACCOUNT_NAME: {{ include "shuffle.app.serviceAccount.name" . | quote }} + {{- if .Values.app.podSecurityContext.enabled }} + SHUFFLE_APP_POD_SECURITY_CONTEXT: {{ omit .Values.app.podSecurityContext "enabled" | mustToJson | quote }} + {{- end }} + {{- if .Values.app.containerSecurityContext.enabled }} + SHUFFLE_APP_CONTAINER_SECURITY_CONTEXT: {{ include "common.compatibility.renderSecurityContext" (dict "secContext" .Values.app.containerSecurityContext "context" $) | fromYaml | mustToJson | quote }} + {{- end }} + + # Shuffle app resources + {{- $appResources := (.Values.app.resources | default (include "common.resources.preset" (dict "type" .Values.app.resourcesPreset)) | fromYaml) -}} + {{- if $appResources.requests.cpu }} + SHUFFLE_APP_CPU_REQUEST: {{ $appResources.requests.cpu | quote }} + {{- end }} + {{- if $appResources.requests.memory}} + SHUFFLE_APP_MEMORY_REQUEST: {{ $appResources.requests.memory | quote }} + {{- end }} + {{- if (index $appResources.requests "ephemeral-storage") }} + SHUFFLE_APP_EPHEMERAL_STORAGE_REQUEST: {{ (index $appResources.requests "ephemeral-storage") | quote }} + {{- end }} + {{- if $appResources.limits.cpu }} + SHUFFLE_APP_CPU_LIMIT: {{ $appResources.limits.cpu | quote }} + {{- end }} + {{- if $appResources.limits.memory}} + SHUFFLE_APP_MEMORY_LIMIT: {{ $appResources.limits.memory | quote }} + {{- end }} + {{- if (index $appResources.limits "ephemeral-storage") }} + SHUFFLE_APP_EPHEMERAL_STORAGE_LIMIT: {{ (index $appResources.limits "ephemeral-storage") | quote }} + {{- end }} diff --git a/functions/kubernetes/charts/shuffle/templates/orborus/orborus-dpl.yaml b/functions/kubernetes/charts/shuffle/templates/orborus/orborus-dpl.yaml index fd73dd15..05ca1ac3 100644 --- a/functions/kubernetes/charts/shuffle/templates/orborus/orborus-dpl.yaml +++ b/functions/kubernetes/charts/shuffle/templates/orborus/orborus-dpl.yaml @@ -86,28 +86,8 @@ spec: value: kubernetes - name: IS_KUBERNETES value: "true" - - name: SHUFFLE_WORKER_SERVICE_ACCOUNT_NAME - value: {{ include "shuffle.worker.serviceAccount.name" . }} - - name: SHUFFLE_APP_EXPOSED_PORT - value: {{ .Values.app.exposedContainerPort | quote }} - {{- if .Values.worker.podSecurityContext.enabled }} - - name: SHUFFLE_WORKER_POD_SECURITY_CONTEXT - value: {{ omit .Values.worker.podSecurityContext "enabled" | mustToJson | quote }} - {{- end }} - {{- if .Values.worker.containerSecurityContext.enabled }} - - name: SHUFFLE_WORKER_CONTAINER_SECURITY_CONTEXT - value: {{ include "common.compatibility.renderSecurityContext" (dict "secContext" .Values.worker.containerSecurityContext "context" $) | fromYaml | mustToJson | quote }} - {{- end }} - - name: SHUFFLE_APP_SERVICE_ACCOUNT_NAME - value: {{ include "shuffle.app.serviceAccount.name" . }} - {{- if .Values.app.podSecurityContext.enabled }} - - name: SHUFFLE_APP_POD_SECURITY_CONTEXT - value: {{ omit .Values.app.podSecurityContext "enabled" | mustToJson | quote }} - {{- end }} - {{- if .Values.app.containerSecurityContext.enabled }} - - name: SHUFFLE_APP_CONTAINER_SECURITY_CONTEXT - value: {{ include "common.compatibility.renderSecurityContext" (dict "secContext" .Values.app.containerSecurityContext "context" $) | fromYaml | mustToJson | quote }} - {{- end }} + - name: SHUFFLE_SWARM_CONFIG + value: run {{- if .Values.orborus.extraEnvVars }} {{- include "common.tplvalues.render" (dict "value" .Values.orborus.extraEnvVars "context" $) | nindent 12 }} {{- end }} diff --git a/functions/kubernetes/charts/shuffle/values.yaml b/functions/kubernetes/charts/shuffle/values.yaml index 08763cb6..57bccb31 100644 --- a/functions/kubernetes/charts/shuffle/values.yaml +++ b/functions/kubernetes/charts/shuffle/values.yaml @@ -1340,6 +1340,24 @@ worker: tag: "" digest: "" + ## worker resource requests and limits + ## ref: http://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/ + ## @param worker.resourcesPreset Set worker container resources according to one common preset (allowed values: none, nano, small, medium, large, xlarge, 2xlarge). This is ignored if worker.resources is set (worker.resources is recommended for production). + ## More information: https://github.com/bitnami/charts/blob/main/bitnami/common/templates/_resources.tpl#L15 + ## + resourcesPreset: "nano" + ## @param worker.resources Set worker container requests and limits for different resources like CPU or memory (essential for production workloads) + ## Example: + ## resources: + ## requests: + ## cpu: 2 + ## memory: 512Mi + ## limits: + ## cpu: 3 + ## memory: 1024Mi + ## + resources: {} + ## Configure Pods Security Context ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod ## @param worker.podSecurityContext.enabled Enable worker pods' Security Context @@ -1444,6 +1462,24 @@ worker: ## @section app Parameters ## app: + ## app resource requests and limits + ## ref: http://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/ + ## @param app.resourcesPreset Set app container resources according to one common preset (allowed values: none, nano, small, medium, large, xlarge, 2xlarge). This is ignored if app.resources is set (app.resources is recommended for production). + ## More information: https://github.com/bitnami/charts/blob/main/bitnami/common/templates/_resources.tpl#L15 + ## + resourcesPreset: "nano" + ## @param app.resources Set app container requests and limits for different resources like CPU or memory (essential for production workloads) + ## Example: + ## resources: + ## requests: + ## cpu: 2 + ## memory: 512Mi + ## limits: + ## cpu: 3 + ## memory: 1024Mi + ## + resources: {} + ## Configure Pods Security Context ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod ## @param app.podSecurityContext.enabled Enable app pods' Security Context