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  }