Make memcached a statefulset, add anti-affinity and podDisruptionBudget (#933)

* Make memcached a statefulset, add anti-affinity and podDisruptionBudget

* Address review comments

* Make the chart 1.0.0, as deploment to SS is a breaking change

* Convert anti-affinity a proper yaml format
This commit is contained in:
Dhilip
2017-05-17 11:52:31 +01:00
committed by Adnan Abdulhussein
parent b19d6cd354
commit 6480d9e192
5 changed files with 37 additions and 7 deletions
+1 -1
View File
@@ -1,5 +1,5 @@
name: memcached
version: 0.4.1
version: 1.0.0
description: Free & open source, high-performance, distributed memory object caching system.
keywords:
- memcached
+13
View File
@@ -0,0 +1,13 @@
apiVersion: policy/v1beta1
kind: PodDisruptionBudget
metadata:
name: {{ template "fullname" . }}
spec:
selector:
matchLabels:
app: {{ template "fullname" . }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
minAvailable: {{ .Values.replicaCount }}
@@ -1,5 +1,5 @@
apiVersion: extensions/v1beta1
kind: Deployment
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
name: {{ template "fullname" . }}
labels:
@@ -8,7 +8,8 @@ metadata:
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
spec:
replicas: 1
serviceName: {{ template "fullname" . }}
replicas: {{ .Values.replicaCount }}
template:
metadata:
labels:
@@ -17,6 +18,18 @@ spec:
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
spec:
affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 5
podAffinityTerm:
labelSelector:
matchExpressions:
- key: app
operator: In
values:
- "{{ template "fullname" . }}"
topologyKey: "kubernetes.io/hostname"
containers:
- name: {{ template "fullname" . }}
image: {{ .Values.image }}
@@ -41,4 +54,4 @@ spec:
initialDelaySeconds: 5
timeoutSeconds: 1
resources:
{{ toYaml .Values.resources | indent 10 }}
{{ toYaml .Values.resources | indent 10 }}
+1
View File
@@ -8,6 +8,7 @@ metadata:
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
spec:
clusterIP: None
ports:
- name: memcache
port: 11211
+5 -2
View File
@@ -1,7 +1,7 @@
## Memcached image and tag
## ref: https://hub.docker.com/r/library/memcached/tags/
##
image: memcached:1.4.32
image: memcached:1.4.36-alpine
## Specify a imagePullPolicy
## 'Always' if imageTag is 'latest', else set to 'IfNotPresent'
@@ -10,12 +10,15 @@ image: memcached:1.4.32
# imagePullPolicy:
#
##Replica count
replicaCount: 3
memcached:
## Various values that get set as command-line flags.
## ref: https://github.com/memcached/memcached/wiki/ConfiguringServer#commandline-arguments
##
maxItemMemory: 64
#verbosity: vvv
verbosity: v
## Configure resource requests and limits
## ref: http://kubernetes.io/docs/user-guide/compute-resources/