chibenwa commented on a change in pull request #718:
URL: https://github.com/apache/james-project/pull/718#discussion_r741711383
##########
File path:
server/apps/distributed-app/helm-chart/james/templates/deployment.yaml
##########
@@ -0,0 +1,391 @@
+{{- $elasticsearchUrl := include "elasticsearch.url.list" . }}
+{{- $cassandraUrl := include "cassandra.url.list" . }}
+{{- $jamesOpts := include "james.jvmOpts" . }}
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: james-jmap
+spec:
+ selector:
+ matchLabels:
+ instance: james-jmap
+ replicas: {{ .Values.james.replicaJmapInstanceCount }}
+ template:
+ metadata:
+ labels:
+ app: james
+ instance: james-jmap
+ spec:
+ {{- if .Values.dockerCredentials }}
+ imagePullSecrets:
+ - name: docker-registry-secret
+ {{- end }}
+ affinity:
+ podAntiAffinity:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ - weight: 100
+ podAffinityTerm:
+ labelSelector:
+ matchExpressions:
+ - key: app
+ operator: In
+ values:
+ - james
+ topologyKey: "kubernetes.io/hostname"
+
+ containers:
+ - name: james-jmap
+ image: {{ .Values.james.image }}
+ readinessProbe:
+ httpGet:
+ path: /healthcheck/checks/Guice%20application%20lifecycle
+ port: 8000
+ initialDelaySeconds: 60
+ periodSeconds: 10
+ livenessProbe:
+ httpGet:
+ path: /healthcheck/checks/Guice%20application%20lifecycle
+ port: 8000
+ initialDelaySeconds: 91
+ periodSeconds: 30
+ envFrom:
+ - secretRef:
+ name: s3-james-credentials
+ env:
+ - name: ELASTICSEARCH_INIT_TIMEOUT
+ value: "120"
+ - name: JAMES_IMAP_SMTP_ENABLED
+ value: "false"
+ - name: JAMES_JMAP_ENABLED
+ value: "true"
+ - name: JAMES_CASSANDRA_NODES_URLS
+ value: "{{ $cassandraUrl | trimSuffix "," }}"
+ - name: JAMES_CASSANDRA_REPLICATION_FACTOR
+ value: "{{ .Values.james.env.cassandraReplicationFactor }}"
+ - name: JAMES_CASSANDRA_USER
+ valueFrom:
+ secretKeyRef:
+ name: db-cassandra-account-james
+ key: james-user
+ - name: JAMES_CASSANDRA_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ name: db-cassandra-account-james
+ key: james-password
+ - name: JAMES_ES_NODES_URLS
+ value: "{{ $elasticsearchUrl | trimSuffix "," }}"
+ - name: JAMES_AMQP_HOST
+ value: {{ .Values.james.env.jamesRabbitHost }}
+ - name: JAMES_AMQP_PORT
+ value: "5672"
+ - name: JAMES_AMQP_MANAGEMENT_PORT
+ value: "15672"
+ - name: JAMES_AMQP_USERNAME
+ valueFrom:
+ secretKeyRef:
+ name: rabbitmq-account-james
+ key: rabbitmq-user
+ - name: JAMES_AMQP_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ name: rabbitmq-account-james
+ key: rabbitmq-password
+ - name: JAMES_DKIM_SIGN_SMTP
+ value: {{ .Values.james.env.jamesDkimSignSmtp }}
+ - name: JAMES_DKIM_SIGN_DOMAIN
+ value: {{ .Values.james.env.jamesDkimSignDomain }}
+ - name: JAMES_DKIM_PRIVATE_KEY
+ valueFrom:
+ secretKeyRef:
+ name: dkim-private-key
+ key: dkim.key
+ - name: JAMES_BUCKET_COUNT
+ value: "6"
+ - name: NAMESPACE
+ valueFrom:
+ fieldRef:
+ fieldPath: metadata.namespace
+ {{- if and (.Values.james.secret.esUser)
(.Values.james.secret.esPassword) }}
+ - name: JAMES_ES_USER
+ valueFrom:
+ secretKeyRef:
+ name: db-es-account-james
+ key: james-user
+ - name: JAMES_ES_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ name: db-es-account-james
+ key: james-password
+ {{- end }}
+ - name: JAMES_DEFAULT_DOMAIN
+ value: {{ .Values.dns.emailDomain }}
+ - name: JAMES_ADMINISTRATOR_ID
+ value: "{{ .Values.james.env.jamesAdminID }}"
+ - name: JAMES_SMTP_HOSTNAME
+ value: "{{ .Values.dns.smtpHostname }}"
+ - name: JAMES_SMTP_MESSAGE
+ value: "{{ .Values.james.env.jamesHELOMessage }}"
+ - name: JAMES_CASSANDRA_KEYSPACE
+ value: {{ .Values.james.env.jamesCassandraKeyspace }}
+ - name: JAMES_CASSANDRA_CACHE_KEYSPACE
+ value: {{ .Values.james.env.jamesCassandraCacheKeyspace }}
+ - name: JAMES_BUCKET_SUFFIX
+ value: "{{ .Values.james.secret.s3.bucketNameSuffix }}"
+ - name: JAMES_ES_MAILBOX_INDEX
+ value: {{ .Values.james.env.jamesEsMailboxIndex }}
+ - name: JAMES_ES_CLUSTER_NAME
+ value: {{ .Values.james.env.jamesEsClusterName }}
+ - name: JAMES_ES_HOST_SCHEME
+ value: {{ .Values.james.env.jamesEsHostScheme }}
+ - name: JAMES_ES_SSL_VALIDATION_STRATEGY
+ value: {{ .Values.james.env.jamesEsSslValidationStrategy }}
+ - name: JAMES_ES_HOST_NAME_VERIFIER
+ value: {{ .Values.james.env.jamesEsHostNameVerifier }}
+ - name: JAMES_ES_NB_SHARDS
+ value: "{{ .Values.james.env.jamesEsNbShards }}"
+ - name: JAMES_ES_NB_REPLICA
+ value: "{{ .Values.james.env.jamesEsNbReplica }}"
+ - name: JAMES_ES_MAILBOX_READ_ALIAS
+ value: "{{ .Values.james.env.jamesEsMailboxReadAlias }}"
+ - name: JAMES_ES_MAILBOX_READ_WRITE
+ value: "{{ .Values.james.env.jamesEsMailboxWriteAlias }}"
+ - name: JAMES_MESSAGE_SIZE
+ value: "{{ .Values.james.env.jamesMessageSize }}"
+ - name: JAVA_TOOL_OPTIONS
+ value: "{{ $jamesOpts }}"
+ ports:
+ - containerPort: 80
+ - containerPort: 8000
+ - containerPort: 4000
+ resources:
+ limits:
+ cpu: {{ .Values.james.env.jamesResources.limits.cpu }}
+ memory: {{ .Values.james.env.jamesResources.limits.memory }}
+ requests:
+ cpu: {{ .Values.james.env.jamesResources.requests.cpu }}
+ memory: {{ .Values.james.env.jamesResources.requests.memory }}
+ volumeMounts:
+ - name: all-in-one-config
+ mountPath: "/root/conf"
+ readOnly: true
+ {{- if .Values.james.tls.secretName }}
+ - name: james-secrets
+ mountPath: /root/secrets
+ {{- end }}
+ volumes:
+ - name: all-in-one-config
+ projected:
+ sources:
+ - configMap:
+ name: james-configs
+ - secret:
+ name: james-jwt-key
+ {{- if .Values.james.tls.secretName }}
+ - name: james-secrets
+ projected:
+ sources:
+ - secret:
+ name: {{ .Values.james.tls.secretName }}
+ items:
+ - key: tls.key
+ path: tls.key
+ - key: tls.crt
+ path: tls.crt
+ {{- end }}
+ priorityClassName: application-scope-medium
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: james-imap-smtp
+spec:
+ selector:
+ matchLabels:
+ instance: james-imap-smtp
+ replicas: {{ .Values.james.replicaImapSmtpInstanceCount }}
+ template:
+ metadata:
+ labels:
+ app: james
+ instance: james-imap-smtp
+ spec:
+ {{- if .Values.dockerCredentials }}
+ imagePullSecrets:
+ - name: docker-registry-secret
+ {{- end }}
+ affinity:
+ podAntiAffinity:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ - weight: 100
+ podAffinityTerm:
+ labelSelector:
+ matchExpressions:
+ - key: app
+ operator: In
+ values:
+ - james
+ topologyKey: "kubernetes.io/hostname"
+
+ containers:
+ - name: james-imap-smtp
+ image: {{ .Values.james.image }}
+ readinessProbe:
+ httpGet:
+ path: /healthcheck/checks/Guice%20application%20lifecycle
+ port: 8000
+ initialDelaySeconds: 60
+ periodSeconds: 10
+ livenessProbe:
+ httpGet:
+ path: /healthcheck/checks/Guice%20application%20lifecycle
+ port: 8000
+ initialDelaySeconds: 91
+ periodSeconds: 30
+ envFrom:
+ - secretRef:
+ name: s3-james-credentials
+ env:
+ - name: ELASTICSEARCH_INIT_TIMEOUT
+ value: "120"
+ - name: JAMES_IMAP_SMTP_ENABLED
+ value: "true"
+ - name: JAMES_JMAP_ENABLED
+ value: "false"
+ - name: JAMES_CASSANDRA_NODES_URLS
+ value: "{{ $cassandraUrl | trimSuffix "," }}"
+ - name: JAMES_CASSANDRA_REPLICATION_FACTOR
+ value: "{{ .Values.james.env.cassandraReplicationFactor }}"
+ - name: JAMES_CASSANDRA_USER
+ valueFrom:
+ secretKeyRef:
+ name: db-cassandra-account-james
+ key: james-user
+ - name: JAMES_CASSANDRA_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ name: db-cassandra-account-james
+ key: james-password
+ - name: JAMES_ES_NODES_URLS
+ value: "{{ $elasticsearchUrl | trimSuffix "," }}"
+ - name: JAMES_AMQP_HOST
+ value: {{ .Values.james.env.jamesRabbitHost }}
+ - name: JAMES_AMQP_PORT
+ value: "5672"
+ - name: JAMES_AMQP_MANAGEMENT_PORT
+ value: "15672"
+ - name: JAMES_AMQP_USERNAME
+ valueFrom:
+ secretKeyRef:
+ name: rabbitmq-account-james
+ key: rabbitmq-user
+ - name: JAMES_AMQP_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ name: rabbitmq-account-james
+ key: rabbitmq-password
+ - name: JAMES_DKIM_SIGN_SMTP
+ value: {{ .Values.james.env.jamesDkimSignSmtp }}
+ - name: JAMES_DKIM_SIGN_DOMAIN
+ value: {{ .Values.james.env.jamesDkimSignDomain }}
+ - name: JAMES_DKIM_PRIVATE_KEY
+ valueFrom:
+ secretKeyRef:
+ name: dkim-private-key
+ key: dkim.key
+ - name: JAMES_BUCKET_COUNT
+ value: "6"
+ - name: NAMESPACE
+ valueFrom:
+ fieldRef:
+ fieldPath: metadata.namespace
+ {{- if and (.Values.james.secret.esUser)
(.Values.james.secret.esPassword) }}
+ - name: JAMES_ES_USER
+ valueFrom:
+ secretKeyRef:
+ name: db-es-account-james
+ key: james-user
+ - name: JAMES_ES_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ name: db-es-account-james
+ key: james-password
+ {{- end }}
+ - name: JAMES_DEFAULT_DOMAIN
+ value: {{ .Values.dns.emailDomain }}
+ - name: JAMES_ADMINISTRATOR_ID
+ value: "{{ .Values.james.env.jamesAdminID }}"
Review comment:
```suggestion
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]