Skip to content

Commit aaec9ce

Browse files
committed
fix: improve DNS endpoints implementation
- Use core.NewMissingSettingsError for validation errors - Remove duplicate RBAC marker from stacks/init.go - Add logging to DNS endpoint create/delete operations - Simplify deleteDNSEndpoint function - Fix typo in CRD test file (DNSEnpoint -> DNSEndpoint)
1 parent c4e74e0 commit aaec9ce

File tree

3 files changed

+9
-11
lines changed

3 files changed

+9
-11
lines changed

internal/resources/gateways/dnsendpoints.go

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77

88
"k8s.io/apimachinery/pkg/types"
99
"sigs.k8s.io/controller-runtime/pkg/client"
10+
"sigs.k8s.io/controller-runtime/pkg/log"
1011
"sigs.k8s.io/external-dns/apis/v1alpha1"
1112
"sigs.k8s.io/external-dns/endpoint"
1213

@@ -39,15 +40,15 @@ func getDNSConfig(ctx core.Context, stack string, dnsType string) (*DNSConfig, e
3940
return nil, err
4041
}
4142
if len(dnsNames) == 0 {
42-
return nil, fmt.Errorf("gateway.dns.%s.dns-names is required when gateway.dns.%s.enabled is true", dnsType, dnsType)
43+
return nil, core.NewMissingSettingsError(fmt.Sprintf("gateway.dns.%s.dns-names is required when gateway.dns.%s.enabled is true", dnsType, dnsType))
4344
}
4445

4546
targets, err := settings.GetTrimmedStringSlice(ctx, stack, "gateway", "dns", dnsType, "targets")
4647
if err != nil {
4748
return nil, err
4849
}
4950
if len(targets) == 0 {
50-
return nil, fmt.Errorf("gateway.dns.%s.targets is required when gateway.dns.%s.enabled is true", dnsType, dnsType)
51+
return nil, core.NewMissingSettingsError(fmt.Sprintf("gateway.dns.%s.targets is required when gateway.dns.%s.enabled is true", dnsType, dnsType))
5152
}
5253

5354
providerSpec, err := settings.GetMapOrEmpty(ctx, stack, "gateway", "dns", dnsType, "provider-specific")
@@ -80,9 +81,12 @@ func expandDNSPattern(pattern, stack string) string {
8081
}
8182

8283
func createDNSEndpoint(ctx core.Context, gateway v1beta1.Dependent, dnsType string, config *DNSConfig) error {
84+
logger := log.FromContext(ctx)
8385
name := fmt.Sprintf("%s-%s", gateway.GetName(), dnsType)
8486
stackName := gateway.GetStack()
8587

88+
logger.Info("Creating DNS endpoint", "name", name, "type", dnsType, "dnsNames", config.DNSPatterns, "targets", config.Targets)
89+
8690
// Build endpoints array - one endpoint per DNS name
8791
endpoints := []*endpoint.Endpoint{}
8892
for _, dnsPattern := range config.DNSPatterns {
@@ -173,17 +177,12 @@ func reconcileDNSEndpoints(ctx core.Context, gateway v1beta1.Dependent) error {
173177
}
174178

175179
func deleteDNSEndpoint(ctx core.Context, namespace, name string) error {
180+
logger := log.FromContext(ctx)
176181
dnsEndpoint := &v1alpha1.DNSEndpoint{}
177182
dnsEndpoint.SetName(name)
178183
dnsEndpoint.SetNamespace(namespace)
179184

180-
if err := ctx.GetClient().Get(ctx, types.NamespacedName{
181-
Name: name,
182-
Namespace: namespace,
183-
}, dnsEndpoint); err != nil {
184-
// Resource doesn't exist, nothing to delete
185-
return client.IgnoreNotFound(err)
186-
}
185+
logger.Info("Deleting DNS endpoint if exists", "name", name, "namespace", namespace)
187186

188-
return ctx.GetClient().Delete(ctx, dnsEndpoint)
187+
return client.IgnoreNotFound(ctx.GetClient().Delete(ctx, dnsEndpoint))
189188
}

internal/resources/stacks/init.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ import (
4141
// +kubebuilder:rbac:groups=core,resources=events,verbs=get;list;watch;create;update;patch;delete
4242
// +kubebuilder:rbac:groups=batch,resources=jobs,verbs=get;list;watch;create;update;patch;delete
4343
// +kubebuilder:rbac:groups=cert-manager.io,resources=certificates,verbs=get;list;watch;create;update;patch;delete
44-
// +kubebuilder:rbac:groups=externaldns.k8s.io,resources=dnsendpoints,verbs=get;list;watch;create;update;patch;delete
4544
// +kubebuilder:rbac:groups=formance.com,resources=stacks,verbs=get;list;watch;create;update;patch;delete
4645
// +kubebuilder:rbac:groups=formance.com,resources=stacks/status,verbs=get;update;patch
4746
// +kubebuilder:rbac:groups=formance.com,resources=stacks/finalizers,verbs=update

internal/tests/crds/externaldns.k8s.io_DNSEnpoint.yaml renamed to internal/tests/crds/externaldns.k8s.io_DNSEndpoint.yaml

File renamed without changes.

0 commit comments

Comments
 (0)