deploy: add pod anti-affinity for provisioner deployments

The added anti-affinity rules prevent provisioner operators from scheduling on
the same nodes. The kubernetes scheduler will spread the pods across nodes to
improve availability during node failures.

Signed-off-by: Nico Berlee <nico.berlee@on2it.net>
This commit is contained in:
Nico Berlee
2020-09-20 02:43:26 +02:00
committed by mergify[bot]
parent fd4328cd53
commit 6a5f1380b0
5 changed files with 28 additions and 0 deletions

View File

@ -63,6 +63,7 @@ func createORDeleteCephfsResouces(action string) {
if err != nil {
e2elog.Failf("failed to read content from %s with error %v", cephfsDirPath+cephfsProvisioner, err)
}
data = oneReplicaDeployYaml(data)
_, err = framework.RunKubectlInput(cephCSINamespace, data, action, ns, "-f", "-")
if err != nil {
e2elog.Failf("failed to %s CephFS provisioner with error %v", action, err)

View File

@ -70,6 +70,7 @@ func createORDeleteRbdResouces(action string) {
if err != nil {
e2elog.Failf("failed to read content from %s with error %v", rbdDirPath+rbdProvisioner, err)
}
data = oneReplicaDeployYaml(data)
_, err = framework.RunKubectlInput(cephCSINamespace, data, action, ns, "-f", "-")
if err != nil {
e2elog.Failf("failed to %s rbd provisioner with error %v", action, err)

View File

@ -7,6 +7,7 @@ import (
"errors"
"fmt"
"io/ioutil"
"regexp"
"strings"
"time"
@ -492,3 +493,8 @@ func addTopologyDomainsToDSYaml(template, labels string) string {
return strings.ReplaceAll(template, "# - \"--domainlabels=failure-domain/region,failure-domain/zone\"",
"- \"--domainlabels="+labels+"\"")
}
func oneReplicaDeployYaml(template string) string {
var re = regexp.MustCompile(`(\s+replicas:) \d+`)
return re.ReplaceAllString(template, `$1 1`)
}