Copied some funcs to wait.go
This commit is contained in:
parent
1550d050d0
commit
824243fa77
@ -10,7 +10,7 @@ import (
|
|||||||
|
|
||||||
"github.com/cert-manager/cert-manager/pkg/acme/webhook/apis/acme/v1alpha1"
|
"github.com/cert-manager/cert-manager/pkg/acme/webhook/apis/acme/v1alpha1"
|
||||||
//"github.com/cert-manager/cert-manager/pkg/issuer/acme/dns/util"
|
//"github.com/cert-manager/cert-manager/pkg/issuer/acme/dns/util"
|
||||||
"github.com/stuurmcp/cert-manager-webhook-sthome/pkg/dns/util"
|
"github.com/stuurmcp/cert-manager-webhook-sthome/pkg/util"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
|||||||
@ -520,3 +520,45 @@ func WaitFor(timeout, interval time.Duration, f func() (bool, error)) error {
|
|||||||
time.Sleep(interval)
|
time.Sleep(interval)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// DNS01LookupFQDN returns a DNS name which will be updated to solve the dns-01
|
||||||
|
// challenge
|
||||||
|
// TODO: move this into the pkg/acme package
|
||||||
|
func DNS01LookupFQDN(domain string, followCNAME bool, nameservers ...string) (string, error) {
|
||||||
|
fqdn := fmt.Sprintf("_acme-challenge.%s.", domain)
|
||||||
|
|
||||||
|
// Check if the domain has CNAME then return that
|
||||||
|
if followCNAME {
|
||||||
|
var err error
|
||||||
|
fqdn, err = followCNAMEs(fqdn, nameservers)
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return fqdn, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// FindBestMatch returns the longest match for a given domain within a list of domains
|
||||||
|
func FindBestMatch(query string, domains ...string) (string, error) {
|
||||||
|
var maxSoFar int
|
||||||
|
var longest string
|
||||||
|
|
||||||
|
for _, domain := range domains {
|
||||||
|
if query == domain {
|
||||||
|
// Found exact match
|
||||||
|
return domain, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
maxHere := dns.CompareDomainName(query, domain)
|
||||||
|
if maxHere > maxSoFar && dns.IsSubDomain(domain, query) {
|
||||||
|
maxSoFar = maxHere
|
||||||
|
longest = domain
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(longest) == 0 {
|
||||||
|
return "", fmt.Errorf("query: %v has no matches", query)
|
||||||
|
}
|
||||||
|
return longest, nil
|
||||||
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user