Chris Wedgwood 8e82d07fc6 rabbitmq: reasonable timing for readinessProbe
Give things time to start and probe only as needed.  This avoids
premature health warnings such as:

  Normal   Created                14s   kubelet, node-0    Created container
  Normal   Started                14s   kubelet, node-0    Started container
  Warning  Unhealthy              10s   kubelet, node-0    Readiness probe failed:

Change-Id: I224aed14a03a3690f1ba2a07a2d9fad54b7dd550
2017-12-22 17:10:49 +00:00

96 lines
3.5 KiB
YAML

{{/*
Copyright 2017 The Openstack-Helm Authors.
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.
*/}}
{{- $envAll := . }}
{{- $dependencies := .Values.dependencies }}
kind: Deployment
apiVersion: apps/v1beta1
metadata:
name: rabbitmq
spec:
replicas: {{ .Values.pod.replicas.server }}
{{ tuple $envAll | include "helm-toolkit.snippets.kubernetes_upgrades_deployment" | indent 2 }}
template:
metadata:
labels:
{{ tuple $envAll "rabbitmq" "server" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 8 }}
annotations:
configmap-bin-hash: {{ tuple "configmap-bin.yaml" . | include "helm-toolkit.utils.hash" }}
configmap-etc-hash: {{ tuple "configmap-etc.yaml" . | include "helm-toolkit.utils.hash" }}
spec:
affinity:
{{ tuple $envAll "rabbitmq" "server" | include "helm-toolkit.snippets.kubernetes_pod_anti_affinity" | indent 8 }}
nodeSelector:
{{ .Values.labels.node_selector_key }}: {{ .Values.labels.node_selector_value }}
initContainers:
{{ tuple $envAll $dependencies "[]" | include "helm-toolkit.snippets.kubernetes_entrypoint_init_container" | indent 9 }}
containers:
- name: rabbitmq
image: {{ .Values.images.tags.rabbitmq }}
{{ tuple $envAll $envAll.Values.pod.resources.server | include "helm-toolkit.snippets.kubernetes_resources" | indent 10 }}
command:
- /scripts/start.sh
env:
- name: RABBITMQ_POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
readinessProbe:
initialDelaySeconds: 30
periodSeconds: 30
timeoutSeconds: {{ .Values.probes_timeout }}
exec:
command:
- /scripts/rabbitmq-readiness.sh
livenessProbe:
initialDelaySeconds: {{ .Values.probes_delay }}
timeoutSeconds: {{ .Values.probes_timeout }}
exec:
command:
- /scripts/rabbitmq-liveness.sh
volumeMounts:
- name: rabbitmq-emptydir
mountPath: /var/lib/rabbitmq
- name: rabbitmq-bin
mountPath: /scripts
- name: rabbitmq-etc
mountPath: /etc/rabbitmq/enabled_plugins
subPath: enabled_plugins
readOnly: true
- name: rabbitmq-etc
mountPath: /etc/rabbitmq/erlang.cookie
subPath: erlang.cookie
readOnly: true
- name: rabbitmq-etc
mountPath: /etc/rabbitmq/rabbitmq-env.conf
subPath: rabbitmq-env.conf
readOnly: true
- name: rabbitmq-etc
mountPath: /etc/rabbitmq/rabbitmq.config
subPath: rabbitmq.config
readOnly: true
volumes:
- name: rabbitmq-emptydir
emptyDir: {}
- name: rabbitmq-bin
configMap:
name: rabbitmq-bin
defaultMode: 0555
- name: rabbitmq-etc
configMap:
name: rabbitmq-etc
defaultMode: 0444