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