github.com/percona/percona-xtradb-cluster-operator@v1.14.0/pkg/k8s/operator_pod.go (about) 1 package k8s 2 3 import ( 4 "context" 5 "os" 6 "strings" 7 8 corev1 "k8s.io/api/core/v1" 9 "k8s.io/apimachinery/pkg/types" 10 "sigs.k8s.io/controller-runtime/pkg/client" 11 ) 12 13 func OperatorPod(ctx context.Context, cl client.Client) (corev1.Pod, error) { 14 operatorPod := corev1.Pod{} 15 16 nsBytes, err := os.ReadFile("/var/run/secrets/kubernetes.io/serviceaccount/namespace") 17 if err != nil { 18 return operatorPod, err 19 } 20 21 ns := strings.TrimSpace(string(nsBytes)) 22 23 if err := cl.Get(ctx, types.NamespacedName{ 24 Namespace: ns, 25 Name: os.Getenv("HOSTNAME"), 26 }, &operatorPod); err != nil { 27 return operatorPod, err 28 } 29 30 return operatorPod, nil 31 }