Skip to content

Commit

Permalink
add workers support
Browse files Browse the repository at this point in the history
  • Loading branch information
himaster committed Oct 9, 2024
1 parent 2984753 commit dda4597
Show file tree
Hide file tree
Showing 3 changed files with 215 additions and 1 deletion.
2 changes: 1 addition & 1 deletion app/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,4 @@ maintainers:
#
# NOTE: this value is set at build time. DO NOT CHANGE.
#
version: 1.2.2
version: 1.3.0
205 changes: 205 additions & 0 deletions app/templates/workers.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,205 @@
{{- $namespace := include "project.namespace" . -}}
{{- $name := include "project.name" . -}}
{{- $fullname := include "project.fullname" . -}}
{{- $releasename := .Release.Name -}}
{{- $values := .Values -}}
{{- $chartName := .Chart.Name -}}

{{- if .Values.workers }}
{{- range .Values.workers }}
{{- $author := (split "." (default "Unknown" .author))._0 }}
---
kind: Deployment
apiVersion: apps/v1
metadata:
name: {{ trunc 52 (printf "%s-worker-%s" $releasename (lower .name)) }}
namespace: {{ $namespace }}
labels:
application: {{ $fullname }}
workerapp: {{ $fullname }}
app: {{ .name }}
app.kubernetes.io/managed-by: "Helm"
meta.helm.sh/release-name: {{ $fullname }}
meta.helm.sh/release-namespace: {{ $namespace }}
{{- toYaml $values.commonLabels | nindent 4 }}
{{- if $values.customLabels }}
{{- toYaml $values.customLabels | nindent 4 }}
{{- end }}
spec:
selector:
matchLabels:
workerapp: {{ $fullname }}
app: {{ .name }}
replicas: {{ if kindIs "float64" .replicas }}{{ .replicas }}{{ else }}1{{ end }}
strategy:
type: {{ .updateStrategy | default "Recreate" | quote }}
template:
metadata:
labels:
workerapp: {{ $fullname }}
app: {{ .name }}
app_lower: {{ lower .name }}
releasename: {{ $releasename }}
author: {{ .author | default "Unknown" | quote }}
{{- if $values.slackTeams }}
{{- range $values.slackTeams }}
{{- if eq $author .name }}
teamId: {{ .id }}
{{- end }}
{{- end }}
{{- end }}
critical: {{ .critical | default "false" | quote }}
{{- toYaml $values.commonLabels | nindent 8 }}
{{- if $values.customLabels }}
{{- toYaml $values.customLabels | nindent 8 }}
{{- end }}
spec:
{{- if $values.rbac.enabled }}
serviceAccountName: {{ $fullname }}
{{- end }}
{{- if $values.image.imagePullSecrets }}
imagePullSecrets:
{{- toYaml $values.image.imagePullSecrets | nindent 8 }}
{{- end }}
{{- if gt (len $values.hostAliases) 0 }}
hostAliases:
{{- range $ip, $hosts := $values.hostAliases }}
- ip: {{ $ip | quote }}
hostnames:
{{- range $hosts }}
- {{ . | quote }}
{{- end }}
{{- end }}
{{- end }}
{{- if or $values.additionalExternalSecretVolumes $values.additionalSecretVolumes $values.additionalNfsPvc $values.additionalRamPvc $values.additionalPvc }}
volumes:
{{- range $values.additionalExternalSecretVolumes }}
{{- if .key }}
- name: {{ .key | replace "." "-" }}
secret:
secretName: {{ .name }}
items:
- key: {{ .key }}
path: {{ .key }}
{{- else }}
- name: {{ .name }}
secret:
secretName: {{ .name }}
{{- end }}
{{- end }}
{{- range $values.additionalSecretVolumes }}
- name: {{ lower .name }}
secret:
secretName: {{ $fullname }}-{{ lower .name }}
{{- end }}
{{- range $values.additionalNfsPvc }}
- name: {{ lower .name }}
persistentVolumeClaim:
claimName: {{ $fullname }}-{{ lower .name }}-new
{{- end }}
{{- range $values.additionalRamPvc }}
- name: {{ lower .name }}
emptyDir:
medium: Memory
sizeLimit: {{ .size | default "100Mi" | quote }}
{{- end }}
{{- range $values.additionalPvc }}
- name: {{ lower .name }}
emptyDir: {}
{{- end }}
{{- end }}
containers:
- name: app
image: {{ $values.image.repository }}
imagePullPolicy: Always
workingDir: /app
resources:
requests:
cpu: {{ .resources.cpu }}
memory: {{ .resources.memory }}
limits:
memory: {{ .resources.memory }}
env:
- name: ROLE
value: "worker"
{{- if $values.podName.enabled }}
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
{{- end }}
{{- if $values.env }}
{{- range $values.env }}
- name: {{ .name }}
value: {{ .value | quote }}
{{- end }}
{{- end }}
{{- if $values.secret_env.envs }}
{{- $secretRef := $values.secret_env.secretRef -}}
{{- range $secret := $values.secret_env.envs }}
- name: {{ $secret.name }}
valueFrom:
secretKeyRef:
key: {{ $secret.key }}
name: {{ $secretRef }}
{{- end }}
{{- end }}
{{- if $values.secret_env.secretRefNames }}
envFrom:
{{- range $secretRefName := $values.secret_env.secretRefNames }}
- secretRef:
name: {{ $secretRefName }}
{{- end }}
{{- end }}
{{- if or $values.additionalExternalSecretVolumes $values.additionalSecretVolumes $values.additionalNfsPvc $values.additionalRamPvc $values.additionalPvc }}
volumeMounts:
{{- range $values.additionalExternalSecretVolumes }}
{{- if or (kindIs "string" .mountPath) (kindIs "string" .cliMountPath) }}
{{- if .key }}
- name: {{ .key | replace "." "-" }}
{{- else }}
- name: {{ .name }}
{{- end }}
mountPath: {{ .cliMountPath | default .mountPath }}
{{- if .subPath }}
subPath: {{ .subPath }}
{{- end }}
{{ else if or (kindIs "slice" .mountPath) (kindIs "slice" .cliMountPath) }}
{{- $outerRange := . }}
{{- range .cliMountPath | default .mountPath }}
{{- if $outerRange.key }}
- name: {{ $outerRange.key | replace "." "-" }}
{{- else }}
- name: {{ $outerRange.name }}
{{- end }}
mountPath: {{ . }}
{{- if $outerRange.subPath }}
subPath: {{ $outerRange.subPath }}
{{- end }}
{{- end }}
{{- end }}
{{- end }}
{{- range $values.additionalSecretVolumes }}
- name: {{ lower .name }}
mountPath: {{ .mountPath }}
{{- if .subPath }}
subPath: {{ .subPath }}
{{- end }}
{{- end }}
{{- range $values.additionalNfsPvc }}
- name: {{ lower .name }}
mountPath: {{ .mountPath }}
{{- end }}
{{- range $values.additionalRamPvc }}
- name: {{ lower .name }}
mountPath: {{ .mountPath }}
{{- end }}
{{- range $values.additionalPvc }}
- name: {{ lower .name }}
mountPath: {{ .mountPath }}
{{- end }}
{{- end }}
command: ["/bin/sh", "-c"]
args: ["{{ .command }}"]
{{- end }}
{{- end }}
9 changes: 9 additions & 0 deletions app/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -552,6 +552,15 @@ affinity: true

affinity_required: true

# -- Array of workers [Deployments](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/)
workers: []
# - name: shop.queue
# command: "python run.py"
# author: Vasily Pupkin
# description: Worker for queues
# resources:
# cpu: "1"
# memory: "1Gi"

# -- Enable compatibility with Flux system (https://fluxcd.io/flux/concepts/)
fluxv2: true
Expand Down

0 comments on commit dda4597

Please sign in to comment.