blob: 46747cd85f23a040d7534f3a92d203a9ab32d235 [file] [log] [blame]
{{/*
# Copyright © 2019 Bell Canada
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
*/}}
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: {{ include "common.fullname" . }}
namespace: {{ include "common.namespace" . }}
labels:
app: {{ include "common.name" . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
release: {{ include "common.release" . }}
heritage: {{ .Release.Service }}
spec:
podManagementPolicy: OrderedReady
replicas: {{ .Values.replicaCount }}
serviceName: {{ include "common.fullname" . }}
selector:
matchLabels:
app: {{ include "common.fullname" . }}
name: {{ include "common.name" . }}-web-deploy
service: django
template:
metadata:
labels:
app: {{ include "common.fullname" . }}
name: {{ include "common.name" . }}-web-deploy
release: {{ include "common.release" . }}
service: django
spec:
initContainers:
- name: {{ include "common.name" . }}-init-readiness
image: {{ include "repositoryGenerator.image.readiness" . }}
imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
command:
- /app/ready.py
args:
- --container-name
- {{ include "common.name" . }}-mgnt
env:
- name: NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
containers:
- image: {{ include "repositoryGenerator.dockerHubRepository" . }}/{{ .Values.image.web }}
imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
name: {{ include "common.name" . }}-web
ports:
- containerPort: {{ .Values.service.web.internalPort }}
protocol: TCP
resources:
requests:
cpu: 500m
memory: 1Gi
volumeMounts:
- mountPath: /etc/tower/settings.py
name: awx-application-config
readOnly: true
subPath: settings.py
- mountPath: /etc/tower/conf.d/
name: awx-application-credentials
readOnly: true
- mountPath: /etc/tower/SECRET_KEY
name: awx-secret-key
readOnly: true
subPath: SECRET_KEY
- command: ["/bin/sh","-c"]
args: ["/usr/bin/launch_awx_task.sh"]
env:
- name: AWX_SKIP_MIGRATIONS
value: "1"
image: {{ include "repositoryGenerator.dockerHubRepository" . }}/{{ .Values.image.task }}
imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
name: {{ include "common.name" . }}-celery
resources:
requests:
cpu: 1500m
memory: 2Gi
securityContext:
privileged: true
volumeMounts:
- mountPath: /etc/tower/settings.py
name: awx-application-config
readOnly: true
subPath: settings.py
- mountPath: /etc/tower/conf.d/
name: awx-application-credentials
readOnly: true
- mountPath: /etc/tower/SECRET_KEY
name: awx-secret-key
readOnly: true
subPath: SECRET_KEY
- env:
- name: MY_POD_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: RABBITMQ_USE_LONGNAME
value: "true"
- name: RABBITMQ_NODENAME
value: rabbit@$(MY_POD_IP)
- name: RABBITMQ_ERLANG_COOKIE
valueFrom:
secretKeyRef:
key: rabbitmq_erlang_cookie
name: {{ include "common.fullname" . }}-secrets
- name: K8S_SERVICE_NAME
value: {{ include "common.servicename" . }}-rabbitmq
image: {{ include "repositoryGenerator.dockerHubRepository" . }}/{{ .Values.image.rabbitmq }}
imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
name: {{ include "common.name" . }}-rabbit
livenessProbe:
exec:
command:
- rabbitmqctl
- status
failureThreshold: 3
initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
periodSeconds: {{ .Values.liveness.periodSeconds }}
successThreshold: 1
timeoutSeconds: 10
ports:
- containerPort: {{ .Values.service.rabbitmq.http.internalPort }}
name: {{ .Values.service.rabbitmq.http.portName }}
protocol: TCP
- containerPort: {{ .Values.service.rabbitmq.amqp.internalPort }}
name: {{ .Values.service.rabbitmq.amqp.portName }}
protocol: TCP
readinessProbe:
exec:
command:
- rabbitmqctl
- status
failureThreshold: 3
initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
periodSeconds: {{ .Values.liveness.periodSeconds }}
successThreshold: 1
timeoutSeconds: 10
resources:
requests:
cpu: 500m
memory: 2Gi
volumeMounts:
- mountPath: /etc/rabbitmq
name: rabbitmq-config
- image: {{ include "repositoryGenerator.dockerHubRepository" . }}/{{ .Values.image.memcached }}
imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
name: {{ include "common.name" . }}-memcached
resources:
requests:
cpu: 500m
memory: 1Gi
serviceAccount: {{ include "common.fullname" . }}
serviceAccountName: {{ include "common.fullname" . }}
volumes:
- configMap:
defaultMode: 420
items:
- key: awx_settings
path: settings.py
name: {{ include "common.fullname" . }}-settings
name: awx-application-config
- name: awx-application-credentials
secret:
defaultMode: 420
items:
- key: credentials_py
path: credentials.py
- key: environment_sh
path: environment.sh
secretName: {{ include "common.fullname" . }}-secrets
- name: awx-secret-key
secret:
defaultMode: 420
items:
- key: secret_key
path: SECRET_KEY
secretName: {{ include "common.fullname" . }}-secrets
- configMap:
defaultMode: 420
items:
- key: rabbitmq.conf
path: rabbitmq.conf
- key: enabled_plugins
path: enabled_plugins
- key: rabbitmq_definitions.json
path: rabbitmq_definitions.json
name: {{ include "common.fullname" . }}-rabbitmq
name: rabbitmq-config
imagePullSecrets:
- name: "{{ include "common.namespace" . }}-docker-registry-key"