diff --git a/bundle/manifests/devportal.kuadrant.io_apiproducts.yaml b/bundle/manifests/devportal.kuadrant.io_apiproducts.yaml index ea626a9b8..6c2cc005c 100644 --- a/bundle/manifests/devportal.kuadrant.io_apiproducts.yaml +++ b/bundle/manifests/devportal.kuadrant.io_apiproducts.yaml @@ -2663,6 +2663,10 @@ spec: updated. format: date-time type: string + maxSizeUsed: + description: maxSizeUsed is the max size limit that was in effect + when this spec was fetched. + type: integer raw: description: raw content type: string diff --git a/bundle/manifests/kuadrant-operator.clusterserviceversion.yaml b/bundle/manifests/kuadrant-operator.clusterserviceversion.yaml index aa805d788..898fe36c2 100644 --- a/bundle/manifests/kuadrant-operator.clusterserviceversion.yaml +++ b/bundle/manifests/kuadrant-operator.clusterserviceversion.yaml @@ -225,7 +225,7 @@ metadata: categories: Integration & Delivery console.openshift.io/plugins: '["kuadrant-console-plugin"]' containerImage: quay.io/kuadrant/kuadrant-operator:latest - createdAt: "2026-01-16T11:30:09Z" + createdAt: "2026-01-21T11:20:16Z" description: A Kubernetes Operator to manage the lifecycle of the Kuadrant system operators.operatorframework.io/builder: operator-sdk-v1.33.0 operators.operatorframework.io/project_layout: go.kubebuilder.io/v4 diff --git a/bundle/manifests/kuadrant.io_dnspolicies.yaml b/bundle/manifests/kuadrant.io_dnspolicies.yaml index 9a4b65f49..b4f42e1e0 100644 --- a/bundle/manifests/kuadrant.io_dnspolicies.yaml +++ b/bundle/manifests/kuadrant.io_dnspolicies.yaml @@ -110,7 +110,8 @@ spec: failureThreshold: default: 5 description: |- - FailureThreshold is a limit of consecutive failures that must occur for a host to be considered unhealthy + FailureThreshold is the number of consecutive failures that must be exceeded for a host to be considered unhealthy. + When the number of consecutive failures exceeds this threshold, the health check will be marked as unhealthy. Defaults to 5 type: integer x-kubernetes-validations: diff --git a/charts/kuadrant-operator/templates/manifests.yaml b/charts/kuadrant-operator/templates/manifests.yaml index 4a7dcadc6..a4e9b5c46 100644 --- a/charts/kuadrant-operator/templates/manifests.yaml +++ b/charts/kuadrant-operator/templates/manifests.yaml @@ -2998,6 +2998,10 @@ spec: updated. format: date-time type: string + maxSizeUsed: + description: maxSizeUsed is the max size limit that was in effect + when this spec was fetched. + type: integer raw: description: raw content type: string @@ -10717,7 +10721,8 @@ spec: failureThreshold: default: 5 description: |- - FailureThreshold is a limit of consecutive failures that must occur for a host to be considered unhealthy + FailureThreshold is the number of consecutive failures that must be exceeded for a host to be considered unhealthy. + When the number of consecutive failures exceeds this threshold, the health check will be marked as unhealthy. Defaults to 5 type: integer x-kubernetes-validations: diff --git a/config/crd/bases/kuadrant.io_dnspolicies.yaml b/config/crd/bases/kuadrant.io_dnspolicies.yaml index 2c81603d2..695a5c698 100644 --- a/config/crd/bases/kuadrant.io_dnspolicies.yaml +++ b/config/crd/bases/kuadrant.io_dnspolicies.yaml @@ -109,7 +109,8 @@ spec: failureThreshold: default: 5 description: |- - FailureThreshold is a limit of consecutive failures that must occur for a host to be considered unhealthy + FailureThreshold is the number of consecutive failures that must be exceeded for a host to be considered unhealthy. + When the number of consecutive failures exceeds this threshold, the health check will be marked as unhealthy. Defaults to 5 type: integer x-kubernetes-validations: diff --git a/go.mod b/go.mod index 0eac1b999..49b2c3c03 100644 --- a/go.mod +++ b/go.mod @@ -14,7 +14,7 @@ require ( github.com/google/go-cmp v0.7.0 github.com/kuadrant/authorino v0.22.0 github.com/kuadrant/authorino-operator v0.21.0 - github.com/kuadrant/dns-operator v0.0.0-20250826105007-7a0e6d88f7bb + github.com/kuadrant/dns-operator v0.0.0-20251125201831-f74008dc171c github.com/kuadrant/limitador-operator v0.15.0 github.com/kuadrant/policy-machinery v0.7.1-0.20251119154946-1ca17a075dd2 github.com/martinlindhe/base36 v1.1.1 diff --git a/go.sum b/go.sum index 0e7d7e281..012673195 100644 --- a/go.sum +++ b/go.sum @@ -91,6 +91,8 @@ github.com/kuadrant/authorino-operator v0.21.0 h1:wjb0lAF7ZzP8Rgc7rbJkGf+1PL2StS github.com/kuadrant/authorino-operator v0.21.0/go.mod h1:elsjAwIFdLDDu9ljq5S28LJIekhtVqeCA7AlaqPTL3U= github.com/kuadrant/dns-operator v0.0.0-20250826105007-7a0e6d88f7bb h1:YTWt8bn7xi5T7XJ9+MlrMDnWk5d8AVMVWVePvHkvR9k= github.com/kuadrant/dns-operator v0.0.0-20250826105007-7a0e6d88f7bb/go.mod h1:EF37SlMqbarJieimWDPRv/N5BACbdzLa9nCBJcoeFvs= +github.com/kuadrant/dns-operator v0.0.0-20251125201831-f74008dc171c h1:4FXlQ+zZEtdbc0Wa2E/2fsa0V/myvIcoxoGgVRRHH5Q= +github.com/kuadrant/dns-operator v0.0.0-20251125201831-f74008dc171c/go.mod h1:QgQK9JsmEkmaH+en2u2r1oXlbLcgvB+1qRnzilYKExI= github.com/kuadrant/limitador-operator v0.15.0 h1:BWgYKV0iasFY3+zKQhLpTdfIlI2pD4MuGr8Hc30ypfg= github.com/kuadrant/limitador-operator v0.15.0/go.mod h1:58b5gdSemjXUijd2TBPKBwaQskU7rynHGHD7rTqk2OE= github.com/kuadrant/policy-machinery v0.7.1-0.20251119154946-1ca17a075dd2 h1:82Qf4klsgQ/176P8PoDbno8Jlik/WPg4j2l3pp1nKG8= diff --git a/internal/controller/dnspolicy_dnsrecords.go b/internal/controller/dnspolicy_dnsrecords.go index 3da894068..f7c257f0c 100644 --- a/internal/controller/dnspolicy_dnsrecords.go +++ b/internal/controller/dnspolicy_dnsrecords.go @@ -6,6 +6,7 @@ import ( "strings" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/utils/env" externaldns "sigs.k8s.io/external-dns/endpoint" gatewayapiv1 "sigs.k8s.io/gateway-api/apis/v1" @@ -19,11 +20,27 @@ const ( LabelListenerReference = "kuadrant.io/listener-name" ) +func dnsPolicyDefaultTTL() (int, error) { + ttl, err := env.GetInt("DNS_DEFAULT_TTL", builder.DefaultTTL) + if err != nil { + return ttl, fmt.Errorf("DNS_DEFAULT_TTL env value could not be parsed as int, default %d will be used: %w", builder.DefaultTTL, err) + } + return ttl, nil +} + +func dnsPolicyDefaultCnameTTL() (int, error) { + ttl, err := env.GetInt("DNS_DEFAULT_LB_TTL", builder.DefaultLoadBalancedTTL) + if err != nil { + return ttl, fmt.Errorf("DNS_DEFAULT_LB_TTL env value could not be parsed as int, default %d will be used: %w", builder.DefaultLoadBalancedTTL, err) + } + return ttl, nil +} + func dnsRecordName(gatewayName, listenerName string) string { return fmt.Sprintf("%s-%s", gatewayName, listenerName) } -func desiredDNSRecord(gateway *gatewayapiv1.Gateway, clusterID string, dnsPolicy *kuadrantv1.DNSPolicy, targetListener gatewayapiv1.Listener) (*kuadrantdnsv1alpha1.DNSRecord, error) { +func desiredDNSRecord(gateway *gatewayapiv1.Gateway, clusterID string, dnsPolicy *kuadrantv1.DNSPolicy, targetListener gatewayapiv1.Listener, defaultTTL int, defaultLoadBalancedTTL int) (*kuadrantdnsv1alpha1.DNSRecord, error) { rootHost := string(*targetListener.Hostname) var healthCheckSpec *kuadrantdnsv1alpha1.HealthCheckSpec @@ -65,7 +82,7 @@ func desiredDNSRecord(gateway *gatewayapiv1.Gateway, clusterID string, dnsPolicy dnsRecord.Labels[LabelListenerReference] = string(targetListener.Name) - endpoints, err := buildEndpoints(clusterID, string(*targetListener.Hostname), gateway, dnsPolicy) + endpoints, err := buildEndpoints(clusterID, string(*targetListener.Hostname), gateway, dnsPolicy, defaultTTL, defaultLoadBalancedTTL) if err != nil { return nil, fmt.Errorf("failed to generate dns record for a gateway %s in %s ns: %w", gateway.Name, gateway.Namespace, err) } @@ -127,14 +144,16 @@ func (g *GatewayWrapper) RemoveExcludedStatusAddresses(p *kuadrantv1.DNSPolicy) return nil } -func buildEndpoints(clusterID, hostname string, gateway *gatewayapiv1.Gateway, policy *kuadrantv1.DNSPolicy) ([]*externaldns.Endpoint, error) { +func buildEndpoints(clusterID, hostname string, gateway *gatewayapiv1.Gateway, policy *kuadrantv1.DNSPolicy, defaultTTL int, defaultLoadBalancedTTL int) ([]*externaldns.Endpoint, error) { gw := gateway.DeepCopy() gatewayWrapper := NewGatewayWrapper(gw) // modify the status addresses based on any that need to be excluded if err := gatewayWrapper.RemoveExcludedStatusAddresses(policy); err != nil { return nil, fmt.Errorf("failed to reconcile gateway dns records error: %w ", err) } - endpointBuilder := builder.NewEndpointsBuilder(gatewayWrapper, hostname) + endpointBuilder := builder.NewEndpointsBuilder(gatewayWrapper, hostname). + SetDefaultTTL(defaultTTL). + SetDefaultLoadBalancedTTL(defaultLoadBalancedTTL) if policy.Spec.LoadBalancing != nil { endpointBuilder.WithLoadBalancingFor( diff --git a/internal/controller/effective_dnspolicies_reconciler.go b/internal/controller/effective_dnspolicies_reconciler.go index 44907e058..59076df4c 100644 --- a/internal/controller/effective_dnspolicies_reconciler.go +++ b/internal/controller/effective_dnspolicies_reconciler.go @@ -70,6 +70,15 @@ func (r *EffectiveDNSPoliciesReconciler) reconcile(ctx context.Context, _ []cont return fmt.Errorf("failed to generate cluster ID: %w", err) } + defaultTTL, err := dnsPolicyDefaultTTL() + if err != nil { + logger.Error(err, err.Error()) + } + defaultLoadBalancedTTL, err := dnsPolicyDefaultCnameTTL() + if err != nil { + logger.Error(err, err.Error()) + } + for _, policy := range policies { _, span := tracer.Start(ctx, "policy.DNSPolicy.effective") span.SetAttributes( @@ -133,7 +142,7 @@ func (r *EffectiveDNSPoliciesReconciler) reconcile(ctx context.Context, _ []cont gatewayHasAttachedRoutes = true } - desiredRecord, err := desiredDNSRecord(gateway.Gateway, clusterID, policy, *listener.Listener) + desiredRecord, err := desiredDNSRecord(gateway.Gateway, clusterID, policy, *listener.Listener, defaultTTL, defaultLoadBalancedTTL) if err != nil { lLogger.Error(err, "failed to build desired dns record") continue diff --git a/tests/common/dnspolicy/dnspolicy_controller_single_cluster_test.go b/tests/common/dnspolicy/dnspolicy_controller_single_cluster_test.go index 9e59e3dde..77e041aa7 100644 --- a/tests/common/dnspolicy/dnspolicy_controller_single_cluster_test.go +++ b/tests/common/dnspolicy/dnspolicy_controller_single_cluster_test.go @@ -20,6 +20,7 @@ import ( gatewayapiv1 "sigs.k8s.io/gateway-api/apis/v1" kuadrantdnsv1alpha1 "github.com/kuadrant/dns-operator/api/v1alpha1" + kuadrantdnsbuilder "github.com/kuadrant/dns-operator/pkg/builder" kuadrantv1 "github.com/kuadrant/kuadrant-operator/api/v1" "github.com/kuadrant/kuadrant-operator/internal/utils" @@ -185,7 +186,7 @@ var _ = Describe("DNSPolicy Single Cluster", func() { "Targets": ContainElements(tests.IPAddressOne, tests.IPAddressTwo), "RecordType": Equal("A"), "SetIdentifier": Equal(""), - "RecordTTL": Equal(externaldns.TTL(60)), + "RecordTTL": Equal(externaldns.TTL(kuadrantdnsbuilder.DefaultTTL)), })), )) g.Expect(dnsRecord.Status.OwnerID).ToNot(BeEmpty()) @@ -200,7 +201,7 @@ var _ = Describe("DNSPolicy Single Cluster", func() { "Targets": ContainElements(tests.IPAddressOne, tests.IPAddressTwo), "RecordType": Equal("A"), "SetIdentifier": Equal(""), - "RecordTTL": Equal(externaldns.TTL(60)), + "RecordTTL": Equal(externaldns.TTL(kuadrantdnsbuilder.DefaultTTL)), })), )) g.Expect(wildcardDnsRecord.Status.OwnerID).ToNot(BeEmpty()) @@ -245,14 +246,14 @@ var _ = Describe("DNSPolicy Single Cluster", func() { "Targets": ConsistOf(tests.IPAddressOne, tests.IPAddressTwo), "RecordType": Equal("A"), "SetIdentifier": Equal(""), - "RecordTTL": Equal(externaldns.TTL(60)), + "RecordTTL": Equal(externaldns.TTL(kuadrantdnsbuilder.DefaultTTL)), })), PointTo(MatchFields(IgnoreExtras, Fields{ "DNSName": Equal("ie.klb.test." + domain), "Targets": ConsistOf(clusterHash + "-" + gwHash + "." + "klb.test." + domain), "RecordType": Equal("CNAME"), "SetIdentifier": Equal(clusterHash + "-" + gwHash + "." + "klb.test." + domain), - "RecordTTL": Equal(externaldns.TTL(60)), + "RecordTTL": Equal(externaldns.TTL(kuadrantdnsbuilder.DefaultTTL)), "ProviderSpecific": Equal(externaldns.ProviderSpecific{{Name: "weight", Value: "120"}}), })), PointTo(MatchFields(IgnoreExtras, Fields{ @@ -260,7 +261,7 @@ var _ = Describe("DNSPolicy Single Cluster", func() { "Targets": ConsistOf("ie.klb.test." + domain), "RecordType": Equal("CNAME"), "SetIdentifier": Equal("IE"), - "RecordTTL": Equal(externaldns.TTL(300)), + "RecordTTL": Equal(externaldns.TTL(kuadrantdnsbuilder.DefaultLoadBalancedTTL)), "ProviderSpecific": Equal(externaldns.ProviderSpecific{{Name: "geo-code", Value: "IE"}}), })), PointTo(MatchFields(IgnoreExtras, Fields{ @@ -268,7 +269,7 @@ var _ = Describe("DNSPolicy Single Cluster", func() { "Targets": ConsistOf("ie.klb.test." + domain), "RecordType": Equal("CNAME"), "SetIdentifier": Equal("default"), - "RecordTTL": Equal(externaldns.TTL(300)), + "RecordTTL": Equal(externaldns.TTL(kuadrantdnsbuilder.DefaultLoadBalancedTTL)), "ProviderSpecific": Equal(externaldns.ProviderSpecific{{Name: "geo-code", Value: "*"}}), })), PointTo(MatchFields(IgnoreExtras, Fields{ @@ -276,7 +277,7 @@ var _ = Describe("DNSPolicy Single Cluster", func() { "Targets": ConsistOf("klb.test." + domain), "RecordType": Equal("CNAME"), "SetIdentifier": Equal(""), - "RecordTTL": Equal(externaldns.TTL(300)), + "RecordTTL": Equal(externaldns.TTL(kuadrantdnsbuilder.DefaultLoadBalancedTTL)), })), )) g.Expect(dnsRecord.Status.OwnerID).ToNot(BeEmpty()) @@ -291,14 +292,14 @@ var _ = Describe("DNSPolicy Single Cluster", func() { "Targets": ConsistOf(tests.IPAddressOne, tests.IPAddressTwo), "RecordType": Equal("A"), "SetIdentifier": Equal(""), - "RecordTTL": Equal(externaldns.TTL(60)), + "RecordTTL": Equal(externaldns.TTL(kuadrantdnsbuilder.DefaultTTL)), })), PointTo(MatchFields(IgnoreExtras, Fields{ "DNSName": Equal("ie.klb." + domain), "Targets": ConsistOf(clusterHash + "-" + gwHash + "." + "klb." + domain), "RecordType": Equal("CNAME"), "SetIdentifier": Equal(clusterHash + "-" + gwHash + "." + "klb." + domain), - "RecordTTL": Equal(externaldns.TTL(60)), + "RecordTTL": Equal(externaldns.TTL(kuadrantdnsbuilder.DefaultTTL)), "ProviderSpecific": Equal(externaldns.ProviderSpecific{{Name: "weight", Value: "120"}}), })), PointTo(MatchFields(IgnoreExtras, Fields{ @@ -306,7 +307,7 @@ var _ = Describe("DNSPolicy Single Cluster", func() { "Targets": ConsistOf("ie.klb." + domain), "RecordType": Equal("CNAME"), "SetIdentifier": Equal("default"), - "RecordTTL": Equal(externaldns.TTL(300)), + "RecordTTL": Equal(externaldns.TTL(kuadrantdnsbuilder.DefaultLoadBalancedTTL)), "ProviderSpecific": Equal(externaldns.ProviderSpecific{{Name: "geo-code", Value: "*"}}), })), PointTo(MatchFields(IgnoreExtras, Fields{ @@ -314,7 +315,7 @@ var _ = Describe("DNSPolicy Single Cluster", func() { "Targets": ConsistOf("ie.klb." + domain), "RecordType": Equal("CNAME"), "SetIdentifier": Equal("IE"), - "RecordTTL": Equal(externaldns.TTL(300)), + "RecordTTL": Equal(externaldns.TTL(kuadrantdnsbuilder.DefaultLoadBalancedTTL)), "ProviderSpecific": Equal(externaldns.ProviderSpecific{{Name: "geo-code", Value: "IE"}}), })), PointTo(MatchFields(IgnoreExtras, Fields{ @@ -322,7 +323,7 @@ var _ = Describe("DNSPolicy Single Cluster", func() { "Targets": ConsistOf("klb." + domain), "RecordType": Equal("CNAME"), "SetIdentifier": Equal(""), - "RecordTTL": Equal(externaldns.TTL(300)), + "RecordTTL": Equal(externaldns.TTL(kuadrantdnsbuilder.DefaultLoadBalancedTTL)), })), )) g.Expect(wildcardDnsRecord.Status.OwnerID).ToNot(BeEmpty()) @@ -365,14 +366,14 @@ var _ = Describe("DNSPolicy Single Cluster", func() { "Targets": ConsistOf(tests.IPAddressOne, tests.IPAddressTwo), "RecordType": Equal("A"), "SetIdentifier": Equal(""), - "RecordTTL": Equal(externaldns.TTL(60)), + "RecordTTL": Equal(externaldns.TTL(kuadrantdnsbuilder.DefaultTTL)), })), PointTo(MatchFields(IgnoreExtras, Fields{ "DNSName": Equal("ie.klb.test." + domain), "Targets": ConsistOf(clusterHash + "-" + gwHash + "." + "klb.test." + domain), "RecordType": Equal("CNAME"), "SetIdentifier": Equal(clusterHash + "-" + gwHash + "." + "klb.test." + domain), - "RecordTTL": Equal(externaldns.TTL(60)), + "RecordTTL": Equal(externaldns.TTL(kuadrantdnsbuilder.DefaultTTL)), "ProviderSpecific": Equal(externaldns.ProviderSpecific{{Name: "weight", Value: "120"}}), })), PointTo(MatchFields(IgnoreExtras, Fields{ @@ -380,7 +381,7 @@ var _ = Describe("DNSPolicy Single Cluster", func() { "Targets": ConsistOf("ie.klb.test." + domain), "RecordType": Equal("CNAME"), "SetIdentifier": Equal("IE"), - "RecordTTL": Equal(externaldns.TTL(300)), + "RecordTTL": Equal(externaldns.TTL(kuadrantdnsbuilder.DefaultLoadBalancedTTL)), "ProviderSpecific": Equal(externaldns.ProviderSpecific{{Name: "geo-code", Value: "IE"}}), })), PointTo(MatchFields(IgnoreExtras, Fields{ @@ -388,7 +389,7 @@ var _ = Describe("DNSPolicy Single Cluster", func() { "Targets": ConsistOf("klb.test." + domain), "RecordType": Equal("CNAME"), "SetIdentifier": Equal(""), - "RecordTTL": Equal(externaldns.TTL(300)), + "RecordTTL": Equal(externaldns.TTL(kuadrantdnsbuilder.DefaultLoadBalancedTTL)), })), )) g.Expect(dnsRecord.Status.OwnerID).ToNot(BeEmpty()) @@ -403,14 +404,14 @@ var _ = Describe("DNSPolicy Single Cluster", func() { "Targets": ConsistOf(tests.IPAddressOne, tests.IPAddressTwo), "RecordType": Equal("A"), "SetIdentifier": Equal(""), - "RecordTTL": Equal(externaldns.TTL(60)), + "RecordTTL": Equal(externaldns.TTL(kuadrantdnsbuilder.DefaultTTL)), })), PointTo(MatchFields(IgnoreExtras, Fields{ "DNSName": Equal("ie.klb." + domain), "Targets": ConsistOf(clusterHash + "-" + gwHash + "." + "klb." + domain), "RecordType": Equal("CNAME"), "SetIdentifier": Equal(clusterHash + "-" + gwHash + "." + "klb." + domain), - "RecordTTL": Equal(externaldns.TTL(60)), + "RecordTTL": Equal(externaldns.TTL(kuadrantdnsbuilder.DefaultTTL)), "ProviderSpecific": Equal(externaldns.ProviderSpecific{{Name: "weight", Value: "120"}}), })), PointTo(MatchFields(IgnoreExtras, Fields{ @@ -418,7 +419,7 @@ var _ = Describe("DNSPolicy Single Cluster", func() { "Targets": ConsistOf("ie.klb." + domain), "RecordType": Equal("CNAME"), "SetIdentifier": Equal("IE"), - "RecordTTL": Equal(externaldns.TTL(300)), + "RecordTTL": Equal(externaldns.TTL(kuadrantdnsbuilder.DefaultLoadBalancedTTL)), "ProviderSpecific": Equal(externaldns.ProviderSpecific{{Name: "geo-code", Value: "IE"}}), })), PointTo(MatchFields(IgnoreExtras, Fields{ @@ -426,7 +427,7 @@ var _ = Describe("DNSPolicy Single Cluster", func() { "Targets": ConsistOf("klb." + domain), "RecordType": Equal("CNAME"), "SetIdentifier": Equal(""), - "RecordTTL": Equal(externaldns.TTL(300)), + "RecordTTL": Equal(externaldns.TTL(kuadrantdnsbuilder.DefaultLoadBalancedTTL)), })), )) g.Expect(wildcardDnsRecord.Status.OwnerID).ToNot(BeEmpty()) diff --git a/tests/common/dnspolicy/dnspolicy_controller_test.go b/tests/common/dnspolicy/dnspolicy_controller_test.go index 74b47bd22..d249dec83 100644 --- a/tests/common/dnspolicy/dnspolicy_controller_test.go +++ b/tests/common/dnspolicy/dnspolicy_controller_test.go @@ -26,6 +26,7 @@ import ( gatewayapiv1alpha2 "sigs.k8s.io/gateway-api/apis/v1alpha2" kuadrantdnsv1alpha1 "github.com/kuadrant/dns-operator/api/v1alpha1" + kuadrantdnsbuilder "github.com/kuadrant/dns-operator/pkg/builder" kuadrantv1 "github.com/kuadrant/kuadrant-operator/api/v1" "github.com/kuadrant/kuadrant-operator/internal/kuadrant" "github.com/kuadrant/kuadrant-operator/internal/utils" @@ -1077,8 +1078,8 @@ var _ = Describe("DNSPolicy controller", func() { It("should re-create dns record when loadbalanced section added/removed", func(ctx SpecContext) { //listener 1 & 2 - Default gateway policy has a loadbalancing section so will create loadbalanced records with CNAME Records for the rootHost - currentRecRootEndpoint := endpointMatcher(tests.HostOne(domain), "CNAME", "", 300, "klb.test."+domain) - currentWildcardRecRootEndpoint := endpointMatcher(tests.HostWildcard(domain), "CNAME", "", 300, "klb."+domain) + currentRecRootEndpoint := endpointMatcher(tests.HostOne(domain), "CNAME", "", kuadrantdnsbuilder.DefaultLoadBalancedTTL, "klb.test."+domain) + currentWildcardRecRootEndpoint := endpointMatcher(tests.HostWildcard(domain), "CNAME", "", kuadrantdnsbuilder.DefaultLoadBalancedTTL, "klb."+domain) //get the current dnsrecord and wildcard dnsrecord currentRec := &kuadrantdnsv1alpha1.DNSRecord{} @@ -1103,8 +1104,8 @@ var _ = Describe("DNSPolicy controller", func() { }, tests.TimeoutMedium, time.Second).Should(Succeed()) //listener 1 & 2 - Default gateway policy has no loadbalancing section so will create simple records with A Records for the rootHost - newRecRootEndpoint := endpointMatcher(tests.HostOne(domain), "A", "", 60, tests.IPAddressOne, tests.IPAddressTwo) - newWildcardRecRootEndpoint := endpointMatcher(tests.HostWildcard(domain), "A", "", 60, tests.IPAddressOne, tests.IPAddressTwo) + newRecRootEndpoint := endpointMatcher(tests.HostOne(domain), "A", "", kuadrantdnsbuilder.DefaultTTL, tests.IPAddressOne, tests.IPAddressTwo) + newWildcardRecRootEndpoint := endpointMatcher(tests.HostWildcard(domain), "A", "", kuadrantdnsbuilder.DefaultTTL, tests.IPAddressOne, tests.IPAddressTwo) //get the dnsrecord again and verify it's no longer the same DNSRecord resource and the record type for the root host has changed //get the wildcard dnsrecord again and verify it's no longer the same DNSRecord resource and the record type for the root host has changed @@ -1139,7 +1140,7 @@ var _ = Describe("DNSPolicy controller", func() { "Targets": ConsistOf(geo + ".klb.test." + domain), "RecordType": Equal("CNAME"), "SetIdentifier": Equal(geo), - "RecordTTL": Equal(externaldns.TTL(300)), + "RecordTTL": Equal(externaldns.TTL(kuadrantdnsbuilder.DefaultLoadBalancedTTL)), "ProviderSpecific": Equal(externaldns.ProviderSpecific{{Name: "geo-code", Value: geo}}), })) } @@ -1196,7 +1197,7 @@ var _ = Describe("DNSPolicy controller", func() { "Targets": ConsistOf(targets), "RecordType": Equal("A"), "SetIdentifier": Equal(""), - "RecordTTL": Equal(externaldns.TTL(60)), + "RecordTTL": Equal(externaldns.TTL(kuadrantdnsbuilder.DefaultTTL)), })) } beforeMatcher := endpointMatcher(tests.IPAddressOne, tests.IPAddressTwo) @@ -1257,8 +1258,8 @@ var _ = Describe("DNSPolicy controller", func() { Context("section name", func() { It("should handle policy with section name", func(ctx SpecContext) { //listener 1 & 2 - Default gateway policy has a loadbalancing section so will create loadbalanced records with CNAME Records for the rootHost - currentRecRootEndpoint := endpointMatcher(tests.HostOne(domain), "CNAME", "", 300, "klb.test."+domain) - currentWildcardRecRootEndpoint := endpointMatcher(tests.HostWildcard(domain), "CNAME", "", 300, "klb."+domain) + currentRecRootEndpoint := endpointMatcher(tests.HostOne(domain), "CNAME", "", kuadrantdnsbuilder.DefaultLoadBalancedTTL, "klb.test."+domain) + currentWildcardRecRootEndpoint := endpointMatcher(tests.HostWildcard(domain), "CNAME", "", kuadrantdnsbuilder.DefaultLoadBalancedTTL, "klb."+domain) //get the current dnsrecord and wildcard dnsrecord currentRec := &kuadrantdnsv1alpha1.DNSRecord{} @@ -1280,7 +1281,7 @@ var _ = Describe("DNSPolicy controller", func() { Expect(k8sClient.Create(ctx, dnsPolicyWithSection)).To(Succeed()) //listener 1 - Listener policy has no loadbalancing section so will create simple records with A Records for the rootHost - newRecRootEndpoint := endpointMatcher(tests.HostOne(domain), "A", "", 60, tests.IPAddressOne, tests.IPAddressTwo) + newRecRootEndpoint := endpointMatcher(tests.HostOne(domain), "A", "", kuadrantdnsbuilder.DefaultTTL, tests.IPAddressOne, tests.IPAddressTwo) //listener 2 - Default gateway policy has a loadbalancing section so will create loadbalanced records with CNAME Records for the rootHost newWildcardRecRootEndpoint := currentWildcardRecRootEndpoint @@ -1319,9 +1320,9 @@ var _ = Describe("DNSPolicy controller", func() { }, tests.TimeoutMedium, time.Second).Should(Succeed()) //listener 1 - Default gateway policy has a loadbalancing section so will create loadbalanced records with CNAME Records for the rootHost - newRecRootEndpoint = endpointMatcher(tests.HostOne(domain), "CNAME", "", 300, "klb.test."+domain) + newRecRootEndpoint = endpointMatcher(tests.HostOne(domain), "CNAME", "", kuadrantdnsbuilder.DefaultLoadBalancedTTL, "klb.test."+domain) //listener 2 - Listener policy has no loadbalancing section so will create simple records with A Records for the rootHost - newWildcardRecRootEndpoint = endpointMatcher(tests.HostWildcard(domain), "A", "", 60, tests.IPAddressOne, tests.IPAddressTwo) + newWildcardRecRootEndpoint = endpointMatcher(tests.HostWildcard(domain), "A", "", kuadrantdnsbuilder.DefaultTTL, tests.IPAddressOne, tests.IPAddressTwo) //get the dnsrecord again and verify it's no longer the same DNSRecord resource and the record type for the root host has changed //get the wildcard dnsrecord and verify it's no longer the same DNSRecord resource and the record type for the root host has changed @@ -1350,8 +1351,8 @@ var _ = Describe("DNSPolicy controller", func() { Expect(k8sClient.Delete(ctx, dnsPolicyWithSection)).To(Succeed()) //listener 1 & 2 - Default gateway policy has a loadbalancing section so will create loadbalanced records with CNAME Records for the rootHost - newRecRootEndpoint = endpointMatcher(tests.HostOne(domain), "CNAME", "", 300, "klb.test."+domain) - newWildcardRecRootEndpoint = endpointMatcher(tests.HostWildcard(domain), "CNAME", "", 300, "klb."+domain) + newRecRootEndpoint = endpointMatcher(tests.HostOne(domain), "CNAME", "", kuadrantdnsbuilder.DefaultLoadBalancedTTL, "klb.test."+domain) + newWildcardRecRootEndpoint = endpointMatcher(tests.HostWildcard(domain), "CNAME", "", kuadrantdnsbuilder.DefaultLoadBalancedTTL, "klb."+domain) //get the dnsrecord again and verify the DNSRecord resource is unchanged //get the wildcard dnsrecord and verify it's no longer the same DNSRecord resource and the record type for the root host has changed