Fix apply of stx-openstack when host is locked
Currently, all of the stx-openstack services have the replica count set to the number of the controllers. If one of the controllers is locked their replicas number will still be 2 which is incorrect. We solve this by changing the number of replicas to be equal to the number of the active controllers. The rabbitmq and mariadb services cannot use this approach because they are unable to work properly if their replica number is decreased from 2 to 1. So a kubernetes toleration is used here to allow the rabbitmq and mariadb pods to be deployed on the locked controller. Change-Id: I15cf2a3f62525751435ddbe66760935f3ab21d2b Closes-Bug: 1879018 Signed-off-by: Mihnea Saracin <Mihnea.Saracin@windriver.com>
This commit is contained in:
parent
bcadcf5218
commit
fc68439414
@ -28,6 +28,8 @@ Patch10: 0010-Mariadb-use-utf8_general_ci-collation-as-default.patch
|
||||
Patch11: 0011-Add-mariadb-database-config-override-to-support-ipv6.patch
|
||||
Patch12: 0012-enable-Values.conf.database.config_override-for-mari.patch
|
||||
Patch13: 0013-Allow-set-public-endpoint-url-for-all-openstack-types.patch
|
||||
Patch14: 0014-Add-tolerations-to-rabbitmq-chart.patch
|
||||
Patch15: 0015-Add-tolerations-to-mariadb-chart.patch
|
||||
|
||||
BuildRequires: helm
|
||||
BuildRequires: chartmuseum
|
||||
@ -50,6 +52,8 @@ Openstack Helm Infra charts
|
||||
%patch11 -p1
|
||||
%patch12 -p1
|
||||
%patch13 -p1
|
||||
%patch14 -p1
|
||||
%patch15 -p1
|
||||
|
||||
%build
|
||||
# Host a server for the charts
|
||||
|
@ -0,0 +1,26 @@
|
||||
From c8f3a96fad3344cfdb058c7c0fee77431f77a001 Mon Sep 17 00:00:00 2001
|
||||
From: Mihnea Saracin <Mihnea.Saracin@windriver.com>
|
||||
Date: Wed, 22 Jul 2020 15:53:25 +0300
|
||||
Subject: [PATCH] Add tolerations to rabbitmq chart
|
||||
|
||||
Signed-off-by: Mihnea Saracin <Mihnea.Saracin@windriver.com>
|
||||
---
|
||||
rabbitmq/templates/statefulset.yaml | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/rabbitmq/templates/statefulset.yaml b/rabbitmq/templates/statefulset.yaml
|
||||
index 9e40a103..cf5d1811 100644
|
||||
--- a/rabbitmq/templates/statefulset.yaml
|
||||
+++ b/rabbitmq/templates/statefulset.yaml
|
||||
@@ -85,6 +85,8 @@ spec:
|
||||
{{ tuple $envAll "rabbitmq" "server" | include "helm-toolkit.snippets.kubernetes_pod_anti_affinity" | indent 8 }}
|
||||
nodeSelector:
|
||||
{{ $envAll.Values.labels.server.node_selector_key }}: {{ $envAll.Values.labels.server.node_selector_value | quote }}
|
||||
+ tolerations:
|
||||
+{{ toYaml .Values.tolerations | indent 8 }}
|
||||
initContainers:
|
||||
{{ tuple $envAll "rabbitmq" list | include "helm-toolkit.snippets.kubernetes_entrypoint_init_container" | indent 8 }}
|
||||
- name: rabbitmq-password
|
||||
--
|
||||
2.17.1
|
||||
|
@ -0,0 +1,40 @@
|
||||
From 7394d591310bf5342f3b66e4ee0a6a3cbd38c558 Mon Sep 17 00:00:00 2001
|
||||
From: Mihnea Saracin <Mihnea.Saracin@windriver.com>
|
||||
Date: Tue, 11 Aug 2020 10:52:15 +0300
|
||||
Subject: [PATCH] Add tolerations to mariadb chart
|
||||
|
||||
Signed-off-by: Mihnea Saracin <Mihnea.Saracin@windriver.com>
|
||||
---
|
||||
mariadb/templates/deployment-ingress.yaml | 2 ++
|
||||
mariadb/templates/statefulset.yaml | 2 ++
|
||||
2 files changed, 4 insertions(+)
|
||||
|
||||
diff --git a/mariadb/templates/deployment-ingress.yaml b/mariadb/templates/deployment-ingress.yaml
|
||||
index 72bea94a..9fb02c8d 100644
|
||||
--- a/mariadb/templates/deployment-ingress.yaml
|
||||
+++ b/mariadb/templates/deployment-ingress.yaml
|
||||
@@ -147,6 +147,8 @@ spec:
|
||||
nodeSelector:
|
||||
{{ .Values.labels.ingress.node_selector_key }}: {{ .Values.labels.ingress.node_selector_value }}
|
||||
terminationGracePeriodSeconds: 60
|
||||
+ tolerations:
|
||||
+{{ toYaml .Values.tolerations | indent 8 }}
|
||||
initContainers:
|
||||
{{ tuple $envAll "ingress" list | include "helm-toolkit.snippets.kubernetes_entrypoint_init_container" | indent 8 }}
|
||||
containers:
|
||||
diff --git a/mariadb/templates/statefulset.yaml b/mariadb/templates/statefulset.yaml
|
||||
index 7ccc219b..120427ae 100644
|
||||
--- a/mariadb/templates/statefulset.yaml
|
||||
+++ b/mariadb/templates/statefulset.yaml
|
||||
@@ -108,6 +108,8 @@ spec:
|
||||
{{ tuple $envAll "mariadb" "server" | include "helm-toolkit.snippets.kubernetes_pod_anti_affinity" | indent 8 }}
|
||||
nodeSelector:
|
||||
{{ .Values.labels.server.node_selector_key }}: {{ .Values.labels.server.node_selector_value }}
|
||||
+ tolerations:
|
||||
+{{ toYaml .Values.tolerations | indent 8 }}
|
||||
initContainers:
|
||||
{{ tuple $envAll "mariadb" list | include "helm-toolkit.snippets.kubernetes_entrypoint_init_container" | indent 8 }}
|
||||
{{- if .Values.volume.chown_on_start }}
|
||||
--
|
||||
2.17.1
|
||||
|
@ -39,10 +39,10 @@ class AodhHelm(openstack.OpenstackBaseHelm):
|
||||
def _get_pod_overrides(self):
|
||||
overrides = {
|
||||
'replicas': {
|
||||
'api': self._num_controllers(),
|
||||
'evaluator': self._num_controllers(),
|
||||
'listener': self._num_controllers(),
|
||||
'notifier': self._num_controllers()
|
||||
'api': self._num_provisioned_controllers(),
|
||||
'evaluator': self._num_provisioned_controllers(),
|
||||
'listener': self._num_provisioned_controllers(),
|
||||
'notifier': self._num_provisioned_controllers()
|
||||
}
|
||||
}
|
||||
return overrides
|
||||
|
@ -23,7 +23,7 @@ class BarbicanHelm(openstack.OpenstackBaseHelm):
|
||||
common.HELM_NS_OPENSTACK: {
|
||||
'pod': {
|
||||
'replicas': {
|
||||
'api': self._num_controllers()
|
||||
'api': self._num_provisioned_controllers()
|
||||
}
|
||||
},
|
||||
'endpoints': self._get_endpoints_overrides(),
|
||||
|
@ -41,8 +41,8 @@ class CeilometerHelm(openstack.OpenstackBaseHelm):
|
||||
def _get_pod_overrides(self):
|
||||
return {
|
||||
'replicas': {
|
||||
'central': self._num_controllers(),
|
||||
'notification': self._num_controllers()
|
||||
'central': self._num_provisioned_controllers(),
|
||||
'notification': self._num_provisioned_controllers()
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -49,10 +49,10 @@ class CinderHelm(openstack.OpenstackBaseHelm):
|
||||
}
|
||||
},
|
||||
'replicas': {
|
||||
'api': self._num_controllers(),
|
||||
'volume': self._num_controllers(),
|
||||
'scheduler': self._num_controllers(),
|
||||
'backup': self._num_controllers()
|
||||
'api': self._num_provisioned_controllers(),
|
||||
'volume': self._num_provisioned_controllers(),
|
||||
'scheduler': self._num_provisioned_controllers(),
|
||||
'backup': self._num_provisioned_controllers()
|
||||
}
|
||||
},
|
||||
'conf': {
|
||||
|
@ -27,7 +27,7 @@ class FmRestApiHelm(openstack.OpenstackBaseHelm):
|
||||
'endpoints': self._get_endpoints_overrides(),
|
||||
'pod': {
|
||||
'replicas': {
|
||||
'api': self._num_controllers()
|
||||
'api': self._num_provisioned_controllers()
|
||||
},
|
||||
},
|
||||
}
|
||||
|
@ -51,7 +51,7 @@ class GlanceHelm(openstack.OpenstackBaseHelm):
|
||||
replicas_count = 1
|
||||
ceph_backend = self._get_primary_ceph_backend()
|
||||
if ceph_backend:
|
||||
replicas_count = self._num_controllers()
|
||||
replicas_count = self._num_provisioned_controllers()
|
||||
|
||||
return {
|
||||
'replicas': {
|
||||
|
@ -39,7 +39,7 @@ class GnocchiHelm(openstack.OpenstackBaseHelm):
|
||||
def _get_pod_overrides(self):
|
||||
return {
|
||||
'replicas': {
|
||||
'api': self._num_controllers()
|
||||
'api': self._num_provisioned_controllers()
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -38,10 +38,10 @@ class HeatHelm(openstack.OpenstackBaseHelm):
|
||||
def _get_pod_overrides(self):
|
||||
return {
|
||||
'replicas': {
|
||||
'api': self._num_controllers(),
|
||||
'cfn': self._num_controllers(),
|
||||
'cloudwatch': self._num_controllers(),
|
||||
'engine': self._num_controllers()
|
||||
'api': self._num_provisioned_controllers(),
|
||||
'cfn': self._num_provisioned_controllers(),
|
||||
'cloudwatch': self._num_provisioned_controllers(),
|
||||
'engine': self._num_provisioned_controllers()
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -62,8 +62,8 @@ class IngressHelm(base.BaseHelm):
|
||||
common.HELM_NS_OPENSTACK: {
|
||||
'pod': {
|
||||
'replicas': {
|
||||
'ingress': self._num_controllers(),
|
||||
'error_page': self._num_controllers()
|
||||
'ingress': self._num_provisioned_controllers(),
|
||||
'error_page': self._num_provisioned_controllers()
|
||||
},
|
||||
'resources': {
|
||||
'enabled': limit_enabled,
|
||||
|
@ -45,8 +45,8 @@ class IronicHelm(openstack.OpenstackBaseHelm):
|
||||
common.HELM_NS_OPENSTACK: {
|
||||
'pod': {
|
||||
'replicas': {
|
||||
'api': self._num_controllers(),
|
||||
'conductor': self._num_controllers()
|
||||
'api': self._num_provisioned_controllers(),
|
||||
'conductor': self._num_provisioned_controllers()
|
||||
}
|
||||
},
|
||||
'network': self._get_network_overrides(),
|
||||
|
@ -49,7 +49,7 @@ class KeystoneHelm(openstack.OpenstackBaseHelm):
|
||||
def _get_pod_overrides(self):
|
||||
overrides = {
|
||||
'replicas': {
|
||||
'api': self._num_controllers()
|
||||
'api': self._num_provisioned_controllers()
|
||||
},
|
||||
'lifecycle': {
|
||||
'termination_grace_period': {
|
||||
|
@ -24,8 +24,8 @@ class MagnumHelm(openstack.OpenstackBaseHelm):
|
||||
common.HELM_NS_OPENSTACK: {
|
||||
'pod': {
|
||||
'replicas': {
|
||||
'api': self._num_controllers(),
|
||||
'conductor': self._num_controllers()
|
||||
'api': self._num_provisioned_controllers(),
|
||||
'conductor': self._num_provisioned_controllers()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -49,7 +49,7 @@ class NeutronHelm(openstack.OpenstackBaseHelm):
|
||||
common.HELM_NS_OPENSTACK: {
|
||||
'pod': {
|
||||
'replicas': {
|
||||
'server': self._num_controllers()
|
||||
'server': self._num_provisioned_controllers()
|
||||
},
|
||||
},
|
||||
'conf': {
|
||||
|
@ -107,13 +107,13 @@ class NovaHelm(openstack.OpenstackBaseHelm):
|
||||
}
|
||||
},
|
||||
'replicas': {
|
||||
'api_metadata': self._num_controllers(),
|
||||
'placement': self._num_controllers(),
|
||||
'osapi': self._num_controllers(),
|
||||
'conductor': self._num_controllers(),
|
||||
'consoleauth': self._num_controllers(),
|
||||
'scheduler': self._num_controllers(),
|
||||
'novncproxy': self._num_controllers()
|
||||
'api_metadata': self._num_provisioned_controllers(),
|
||||
'placement': self._num_provisioned_controllers(),
|
||||
'osapi': self._num_provisioned_controllers(),
|
||||
'conductor': self._num_provisioned_controllers(),
|
||||
'consoleauth': self._num_provisioned_controllers(),
|
||||
'scheduler': self._num_provisioned_controllers(),
|
||||
'novncproxy': self._num_provisioned_controllers()
|
||||
}
|
||||
},
|
||||
'conf': {
|
||||
|
@ -30,7 +30,7 @@ class NovaApiProxyHelm(openstack.OpenstackBaseHelm):
|
||||
}
|
||||
},
|
||||
'replicas': {
|
||||
'proxy': self._num_controllers()
|
||||
'proxy': self._num_provisioned_controllers()
|
||||
}
|
||||
},
|
||||
'conf': {
|
||||
|
@ -38,7 +38,7 @@ class PankoHelm(openstack.OpenstackBaseHelm):
|
||||
def _get_pod_overrides(self):
|
||||
overrides = {
|
||||
'replicas': {
|
||||
'api': self._num_controllers()
|
||||
'api': self._num_provisioned_controllers()
|
||||
}
|
||||
}
|
||||
return overrides
|
||||
|
@ -26,7 +26,7 @@ class PlacementHelm(openstack.OpenstackBaseHelm):
|
||||
common.HELM_NS_OPENSTACK: {
|
||||
'pod': {
|
||||
'replicas': {
|
||||
'api': self._num_controllers()
|
||||
'api': self._num_provisioned_controllers()
|
||||
}
|
||||
},
|
||||
'endpoints': self._get_endpoints_overrides()
|
||||
|
@ -190,6 +190,9 @@ data:
|
||||
config_override: |
|
||||
[mysqld]
|
||||
wsrep_provider_options="gmcast.listen_addr=tcp://0.0.0.0:{{ tuple "oslo_db" "direct" "wsrep" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}"
|
||||
tolerations:
|
||||
- effect: NoExecute
|
||||
operator: Exists
|
||||
source:
|
||||
type: tar
|
||||
location: http://172.17.0.1/helm_charts/starlingx/mariadb-0.1.0.tgz
|
||||
@ -340,6 +343,9 @@ data:
|
||||
# filesystem race as seen in the LP.
|
||||
volume:
|
||||
size: 1Gi
|
||||
tolerations:
|
||||
- effect: NoExecute
|
||||
operator: Exists
|
||||
source:
|
||||
type: tar
|
||||
location: http://172.17.0.1/helm_charts/starlingx/rabbitmq-0.1.0.tgz
|
||||
|
Loading…
Reference in New Issue
Block a user