github.com/jenkins-x/jx/v2@v2.1.155/pkg/kube/certmanager.go (about) 1 package kube 2 3 import ( 4 certmngclient "github.com/jetstack/cert-manager/pkg/client/clientset/versioned" 5 "github.com/pkg/errors" 6 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" 7 ) 8 9 const labelLetsencryptService = "jenkins.io/letsencrypt-service" 10 11 // IsStagingCertificate looks at certmanager certificates to find if we are using staging or prod certs 12 func IsStagingCertificate(client certmngclient.Interface, ns string) (bool, error) { 13 certs, err := client.CertmanagerV1alpha1().Certificates(ns).List(metav1.ListOptions{}) 14 if err != nil { 15 return false, err 16 } 17 // loop over certificates and look for a Jenkins X label to identify if we are using staging or prod certs 18 for _, cert := range certs.Items { 19 if cert.ObjectMeta.Labels[labelLetsencryptService] == "production" { 20 return false, nil 21 } 22 if cert.ObjectMeta.Labels[labelLetsencryptService] == "staging" { 23 return true, nil 24 } 25 } 26 return false, errors.New("no matching certificates found with letsencrypt-service label") 27 }