Introduce rolling updates for daemonsets

Kubernetes 1.6 introduced the ability to declare an update
strategy for daemonsets. As weve made >1.6 a requirement, we
should adopt the ability to update our daemonsets just as we do
with deployments. This brings the daemonset templates in our
charts in line with other patterns developed.

Change-Id: I317560b24d65274b69bec2df4f6225f1255b7ae6
This commit is contained in:
Steve Wilkerson 2017-06-27 15:16:53 -05:00
parent efa8293e54
commit d58059aa7a
16 changed files with 150 additions and 40 deletions

View File

@ -21,6 +21,15 @@ kind: DaemonSet
metadata:
name: neutron-dhcp-agent
spec:
{{ if .Values.upgrades.daemonsets.dhcp_agent.enabled }}
minReadySeconds: {{ .Values.upgrades.daemonsets.dhcp_agent.min_ready_seconds }}
updateStrategy:
type: {{ .Values.upgrades.daemonsets.pod_replacement_strategy }}
{{ if eq .Values.upgrades.daemonsets.pod_replacement_strategy "RollingUpdate" }}
rollingUpdate:
maxUnavailable: {{ .Values.upgrades.daemonsets.dhcp_agent.max_unavailable }}
{{ end }}
{{ end }}
template:
metadata:
labels:

View File

@ -21,6 +21,15 @@ kind: DaemonSet
metadata:
name: neutron-l3-agent
spec:
{{ if .Values.upgrades.daemonsets.l3_agent.enabled }}
minReadySeconds: {{ .Values.upgrades.daemonsets.l3_agent.min_ready_seconds }}
updateStrategy:
type: {{ .Values.upgrades.daemonsets.pod_replacement_strategy }}
{{ if eq .Values.upgrades.daemonsets.pod_replacement_strategy "RollingUpdate" }}
rollingUpdate:
maxUnavailable: {{ .Values.upgrades.daemonsets.l3_agent.max_unavailable }}
{{ end }}
{{ end }}
template:
metadata:
labels:

View File

@ -21,6 +21,15 @@ kind: DaemonSet
metadata:
name: neutron-metadata-agent
spec:
{{ if .Values.upgrades.daemonsets.metadata_agent.enabled }}
minReadySeconds: {{ .Values.upgrades.daemonsets.metadata_agent.min_ready_seconds }}
updateStrategy:
type: {{ .Values.upgrades.daemonsets.pod_replacement_strategy }}
{{ if eq .Values.upgrades.daemonsets.pod_replacement_strategy "RollingUpdate" }}
rollingUpdate:
maxUnavailable: {{ .Values.upgrades.daemonsets.metadata_agent.max_unavailable }}
{{ end }}
{{ end }}
template:
metadata:
labels:

View File

@ -21,6 +21,15 @@ kind: DaemonSet
metadata:
name: ovs-agent
spec:
{{ if .Values.upgrades.daemonsets.ovs_agent.enabled }}
minReadySeconds: {{ .Values.upgrades.daemonsets.ovs_agent.min_ready_seconds }}
updateStrategy:
type: {{ .Values.upgrades.daemonsets.pod_replacement_strategy }}
{{ if eq .Values.upgrades.daemonsets.pod_replacement_strategy "RollingUpdate" }}
rollingUpdate:
maxUnavailable: {{ .Values.upgrades.daemonsets.ovs_agent.max_unavailable }}
{{ end }}
{{ end }}
template:
metadata:
labels:

View File

@ -17,6 +17,15 @@ kind: DaemonSet
metadata:
name: ovs-db
spec:
{{ if .Values.upgrades.daemonsets.ovs_db.enabled }}
minReadySeconds: {{ .Values.upgrades.daemonsets.ovs_db.min_ready_seconds }}
updateStrategy:
type: {{ .Values.upgrades.daemonsets.pod_replacement_strategy }}
{{ if eq .Values.upgrades.daemonsets.pod_replacement_strategy "RollingUpdate" }}
rollingUpdate:
maxUnavailable: {{ .Values.upgrades.daemonsets.ovs_db.max_unavailable }}
{{ end }}
{{ end }}
template:
metadata:
labels:

View File

@ -17,6 +17,15 @@ kind: DaemonSet
metadata:
name: ovs-vswitchd
spec:
{{ if .Values.upgrades.daemonsets.ovs_vswitchd.enabled }}
minReadySeconds: {{ .Values.upgrades.daemonsets.ovs_vswitchd.min_ready_seconds }}
updateStrategy:
type: {{ .Values.upgrades.daemonsets.pod_replacement_strategy }}
{{ if eq .Values.upgrades.daemonsets.pod_replacement_strategy "RollingUpdate" }}
rollingUpdate:
maxUnavailable: {{ .Values.upgrades.daemonsets.ovs_vswitchd.max_unavailable }}
{{ end }}
{{ end }}
template:
metadata:
labels:

View File

@ -22,13 +22,13 @@ metadata:
name: neutron-server
spec:
replicas: {{ .Values.replicas.server }}
revisionHistoryLimit: {{ .Values.upgrades.revision_history }}
revisionHistoryLimit: {{ .Values.upgrades.deployments.revision_history }}
strategy:
type: {{ .Values.upgrades.pod_replacement_strategy }}
{{ if eq .Values.upgrades.pod_replacement_strategy "RollingUpdate" }}
type: {{ .Values.upgrades.deployments.pod_replacement_strategy }}
{{ if eq .Values.upgrades.deployments.pod_replacement_strategy "RollingUpdate" }}
rollingUpdate:
maxUnavailable: {{ .Values.upgrades.rolling_update.max_unavailable }}
maxSurge: {{ .Values.upgrades.rolling_update.max_surge }}
maxUnavailable: {{ .Values.upgrades.deployments.rolling_update.max_unavailable }}
maxSurge: {{ .Values.upgrades.deployments.rolling_update.max_surge }}
{{ end }}
template:
metadata:

View File

@ -38,11 +38,38 @@ images:
pull_policy: "IfNotPresent"
upgrades:
revision_history: 3
pod_replacement_strategy: RollingUpdate
rolling_update:
max_unavailable: 1
max_surge: 3
deployments:
revision_history: 3
pod_replacement_strategy: RollingUpdate
rolling_update:
max_unavailable: 1
max_surge: 3
daemonsets:
pod_replacement_strategy: RollingUpdate
dhcp_agent:
enabled: false
min_ready_seconds: 0
max_unavailable: 1
l3_agent:
enabled: false
min_ready_seconds: 0
max_unavailable: 1
metadata_agent:
enabled: true
min_ready_seconds: 0
max_unavailable: 1
ovs_agent:
enabled: true
min_ready_seconds: 0
max_unavailable: 1
ovs_db:
enabled: false
min_ready_seconds: 0
max_unavailable: 1
ovs_vswitchd:
enabled: false
min_ready_seconds: 0
max_unavailable: 1
pod_disruption_budget:
server:

View File

@ -22,6 +22,15 @@ kind: DaemonSet
metadata:
name: nova-compute
spec:
{{ if .Values.upgrades.daemonsets.compute.enabled }}
minReadySeconds: {{ .Values.upgrades.daemonsets.compute.min_ready_seconds }}
updateStrategy:
type: {{ .Values.upgrades.daemonsets.pod_replacement_strategy }}
{{ if eq .Values.upgrades.daemonsets.pod_replacement_strategy "RollingUpdate" }}
rollingUpdate:
maxUnavailable: {{ .Values.upgrades.daemonsets.compute.max_unavailable }}
{{ end }}
{{ end }}
template:
metadata:
labels:

View File

@ -21,6 +21,15 @@ kind: DaemonSet
metadata:
name: nova-libvirt
spec:
{{ if .Values.upgrades.daemonsets.libvirt.enabled }}
minReadySeconds: {{ .Values.upgrades.daemonsets.libvirt.min_ready_seconds }}
updateStrategy:
type: {{ .Values.upgrades.daemonsets.pod_replacement_strategy }}
{{ if eq .Values.upgrades.daemonsets.pod_replacement_strategy "RollingUpdate" }}
rollingUpdate:
maxUnavailable: {{ .Values.upgrades.daemonsets.libvirt.max_unavailable }}
{{ end }}
{{ end }}
template:
metadata:
labels:

View File

@ -22,13 +22,13 @@ metadata:
name: nova-api-metadata
spec:
replicas: {{ .Values.replicas.api_metadata }}
revisionHistoryLimit: {{ .Values.upgrades.revision_history }}
revisionHistoryLimit: {{ .Values.upgrades.deployments.revision_history }}
strategy:
type: {{ .Values.upgrades.pod_replacement_strategy }}
{{ if eq .Values.upgrades.pod_replacement_strategy "RollingUpdate" }}
type: {{ .Values.upgrades.deployments.pod_replacement_strategy }}
{{ if eq .Values.upgrades.deployments.pod_replacement_strategy "RollingUpdate" }}
rollingUpdate:
maxUnavailable: {{ .Values.upgrades.rolling_update.max_unavailable }}
maxSurge: {{ .Values.upgrades.rolling_update.max_surge }}
maxUnavailable: {{ .Values.upgrades.deployments.rolling_update.max_unavailable }}
maxSurge: {{ .Values.upgrades.deployments.rolling_update.max_surge }}
{{ end }}
template:
metadata:

View File

@ -22,13 +22,13 @@ metadata:
name: nova-api-osapi
spec:
replicas: {{ .Values.replicas.osapi }}
revisionHistoryLimit: {{ .Values.upgrades.revision_history }}
revisionHistoryLimit: {{ .Values.upgrades.deployments.revision_history }}
strategy:
type: {{ .Values.upgrades.pod_replacement_strategy }}
{{ if eq .Values.upgrades.pod_replacement_strategy "RollingUpdate" }}
type: {{ .Values.upgrades.deployments.pod_replacement_strategy }}
{{ if eq .Values.upgrades.deployments.pod_replacement_strategy "RollingUpdate" }}
rollingUpdate:
maxUnavailable: {{ .Values.upgrades.rolling_update.max_unavailable }}
maxSurge: {{ .Values.upgrades.rolling_update.max_surge }}
maxUnavailable: {{ .Values.upgrades.deployments.rolling_update.max_unavailable }}
maxSurge: {{ .Values.upgrades.deployments.rolling_update.max_surge }}
{{ end }}
template:
metadata:

View File

@ -22,13 +22,13 @@ metadata:
name: nova-conductor
spec:
replicas: {{ .Values.replicas.conductor }}
revisionHistoryLimit: {{ .Values.upgrades.revision_history }}
revisionHistoryLimit: {{ .Values.upgrades.deployments.revision_history }}
strategy:
type: {{ .Values.upgrades.pod_replacement_strategy }}
{{ if eq .Values.upgrades.pod_replacement_strategy "RollingUpdate" }}
type: {{ .Values.upgrades.deployments.pod_replacement_strategy }}
{{ if eq .Values.upgrades.deployments.pod_replacement_strategy "RollingUpdate" }}
rollingUpdate:
maxUnavailable: {{ .Values.upgrades.rolling_update.max_unavailable }}
maxSurge: {{ .Values.upgrades.rolling_update.max_surge }}
maxUnavailable: {{ .Values.upgrades.deployments.rolling_update.max_unavailable }}
maxSurge: {{ .Values.upgrades.deployments.rolling_update.max_surge }}
{{ end }}
template:
metadata:

View File

@ -23,13 +23,13 @@ metadata:
name: nova-consoleauth
spec:
replicas: {{ .Values.replicas.consoleauth }}
revisionHistoryLimit: {{ .Values.upgrades.revision_history }}
revisionHistoryLimit: {{ .Values.upgrades.deployments.revision_history }}
strategy:
type: {{ .Values.upgrades.pod_replacement_strategy }}
{{ if eq .Values.upgrades.pod_replacement_strategy "RollingUpdate" }}
type: {{ .Values.upgrades.deployments.pod_replacement_strategy }}
{{ if eq .Values.upgrades.deployments.pod_replacement_strategy "RollingUpdate" }}
rollingUpdate:
maxUnavailable: {{ .Values.upgrades.rolling_update.max_unavailable }}
maxSurge: {{ .Values.upgrades.rolling_update.max_surge }}
maxUnavailable: {{ .Values.upgrades.deployments.rolling_update.max_unavailable }}
maxSurge: {{ .Values.upgrades.deployments.rolling_update.max_surge }}
{{ end }}
template:
metadata:

View File

@ -23,13 +23,13 @@ metadata:
name: nova-scheduler
spec:
replicas: {{ .Values.replicas.scheduler }}
revisionHistoryLimit: {{ .Values.upgrades.revision_history }}
revisionHistoryLimit: {{ .Values.upgrades.deployments.revision_history }}
strategy:
type: {{ .Values.upgrades.pod_replacement_strategy }}
{{ if eq .Values.upgrades.pod_replacement_strategy "RollingUpdate" }}
type: {{ .Values.upgrades.deployments.pod_replacement_strategy }}
{{ if eq .Values.upgrades.deployments.pod_replacement_strategy "RollingUpdate" }}
rollingUpdate:
maxUnavailable: {{ .Values.upgrades.rolling_update.max_unavailable }}
maxSurge: {{ .Values.upgrades.rolling_update.max_surge }}
maxUnavailable: {{ .Values.upgrades.deployments.rolling_update.max_unavailable }}
maxSurge: {{ .Values.upgrades.deployments.rolling_update.max_surge }}
{{ end }}
template:
metadata:

View File

@ -70,11 +70,22 @@ images:
pull_policy: "IfNotPresent"
upgrades:
revision_history: 3
pod_replacement_strategy: RollingUpdate
rolling_update:
max_unavailable: 1
max_surge: 3
deployments:
revision_history: 3
pod_replacement_strategy: RollingUpdate
rolling_update:
max_unavailable: 1
max_surge: 3
daemonsets:
pod_replacement_strategy: RollingUpdate
compute:
enabled: true
min_ready_seconds: 0
max_unavailable: 1
libvirt:
enabled: true
min_ready_seconds: 0
max_unavailable: 1
pod_disruption_budget:
metadata: