forked from percona/percona-server-mongodb-operator
/
pdb.go
28 lines (25 loc) · 891 Bytes
/
pdb.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package psmdb
import (
policyv1beta1 "k8s.io/api/policy/v1beta1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
api "github.com/percona/percona-server-mongodb-operator/pkg/apis/psmdb/v1"
)
func PodDisruptionBudget(spec *api.PodDisruptionBudgetSpec, labels map[string]string, namespace string) *policyv1beta1.PodDisruptionBudget {
return &policyv1beta1.PodDisruptionBudget{
TypeMeta: metav1.TypeMeta{
APIVersion: "policy/v1beta1",
Kind: "PodDisruptionBudget",
},
ObjectMeta: metav1.ObjectMeta{
Name: labels["app.kubernetes.io/instance"] + "-" + labels["app.kubernetes.io/component"] + "-" + labels["app.kubernetes.io/replset"],
Namespace: namespace,
},
Spec: policyv1beta1.PodDisruptionBudgetSpec{
MinAvailable: spec.MinAvailable,
MaxUnavailable: spec.MaxUnavailable,
Selector: &metav1.LabelSelector{
MatchLabels: labels,
},
},
}
}