package resources import ( "fmt" "github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkinsio/v1alpha1" "github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/constants" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) // NewResourceObjectMeta builds ObjectMeta for all Kubernetes resources created by operator func NewResourceObjectMeta(jenkins *v1alpha1.Jenkins) metav1.ObjectMeta { return metav1.ObjectMeta{ Name: GetResourceName(jenkins), Namespace: jenkins.ObjectMeta.Namespace, Labels: BuildResourceLabels(jenkins), } } // BuildResourceLabels returns labels for all Kubernetes resources created by operator func BuildResourceLabels(jenkins *v1alpha1.Jenkins) map[string]string { return map[string]string{ constants.LabelAppKey: constants.LabelAppValue, constants.LabelJenkinsCRKey: jenkins.Name, } } // BuildLabelsForWatchedResources returns labels for Kubernetes resources which operator want to watch // resources with that labels should not be deleted after Jenkins CR deletion, to prevent this situation don't set // any owner func BuildLabelsForWatchedResources(jenkins *v1alpha1.Jenkins) map[string]string { return map[string]string{ constants.LabelAppKey: constants.LabelAppValue, constants.LabelJenkinsCRKey: jenkins.Name, constants.LabelWatchKey: constants.LabelWatchValue, } } // GetResourceName returns name of Kubernetes resource base on Jenkins CR func GetResourceName(jenkins *v1alpha1.Jenkins) string { return fmt.Sprintf("%s-%s", constants.LabelAppValue, jenkins.ObjectMeta.Name) }