From b911dcf170dfeb27d91ce422675045a5ce8156e2 Mon Sep 17 00:00:00 2001 From: Tevildo Date: Tue, 16 Apr 2024 21:30:59 +0100 Subject: [PATCH] implement CleanUp method --- main.go | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/main.go b/main.go index 377ecee..87da8e5 100644 --- a/main.go +++ b/main.go @@ -118,8 +118,21 @@ func (c *customDNSProviderSolver) Present(ch *acme_v1alpha1.ChallengeRequest) er // This is in order to facilitate multiple DNS validations for the same domain // concurrently. func (c *customDNSProviderSolver) CleanUp(ch *acme_v1alpha1.ChallengeRequest) error { - // TODO: add code that deletes a record from the DNS provider's console - return nil + cfg, err := loadConfig(ch.Config) + if err != nil { + return err + } + + apiKeySecret, err := c.client.CoreV1().Secrets("").Get(context.TODO(), cfg.APIKeySecretRef.Name, v1.GetOptions{}) + if err != nil { + return err + } + apiKeyData := apiKeySecret.Data[cfg.APIKeySecretRef.Key] + apiKey := string(apiKeyData) + + dnsName := strings.TrimSuffix(ch.ResolvedFQDN, "."+ch.ResolvedZone) + + return dns.ClearTXTRecord(ch.ResolvedZone, dnsName, ch.Key, cfg.Login, apiKey) } // Initialize will be called when the webhook first starts.