From 6a525ac2d44069313a4b98bed97adc36033cfdcd Mon Sep 17 00:00:00 2001 From: Michal K Date: Tue, 11 Feb 2025 18:30:04 +0100 Subject: [PATCH] Removing SplitBrain functionality from GLSB spec, terratests, CRD --- api/v1beta1/gslb_types.go | 2 - chart/k8gb/README.md | 1 - chart/k8gb/crd/k8gb.absa.oss_gslbs.yaml | 3 -- chart/k8gb/templates/deployment.yaml | 2 - chart/k8gb/values.schema.json | 3 -- chart/k8gb/values.yaml | 2 - controllers/depresolver/depresolver_spec.go | 10 +---- controllers/depresolver/depresolver_test.go | 27 ------------- .../testdata/filled_omitempty.yaml | 1 - ...filled_omitempty_with_zero_splitbrain.yaml | 1 - .../testdata/invalid_omitempty_empty.yaml | 1 - .../testdata/invalid_omitempty_negative.yaml | 39 ------------------- controllers/gslb_controller_reconciliation.go | 11 +++--- controllers/gslb_controller_setup.go | 4 -- .../testdata/gslb_ingress_embedded.yaml | 1 - .../testdata/gslb_ingress_referenced.yaml | 1 - .../gslb_ingress_referenced_and_embedded.yaml | 1 - .../refresolver/testdata/gslb_istio.yaml | 1 - controllers/utils/annotations_test.go | 2 +- ...sa.oss_v1beta1_gslb_cr_notfound_istio.yaml | 1 - ...ss_v1beta1_gslb_cr_roundrobin_ingress.yaml | 1 - ...1beta1_gslb_cr_roundrobin_ingress_ref.yaml | 1 - ....oss_v1beta1_gslb_cr_roundrobin_istio.yaml | 1 - ...a.oss_v1beta1_gslb_cr_unhealthy_istio.yaml | 1 - docs/deploy_cloudflare.md | 1 - .../cloudflare/test-gslb-failover.yaml | 1 - .../route53/k8gb/gslb-roundrobin.yaml | 1 - .../windowsdns/k8gb/aks1-helm-values.yaml | 2 - .../windowsdns/k8gb/aks2-helm-values.yaml | 2 - terratest/examples/failover-lifecycle.yaml | 1 - .../examples/ingress-annotation-failover.yaml | 1 - .../k8gb_ingress_annotation_failover_test.go | 1 - terratest/test/k8gb_lifecycle_test.go | 2 - 33 files changed, 7 insertions(+), 123 deletions(-) delete mode 100644 controllers/depresolver/testdata/invalid_omitempty_negative.yaml diff --git a/api/v1beta1/gslb_types.go b/api/v1beta1/gslb_types.go index 7d6b7f8d05..430d0a158d 100644 --- a/api/v1beta1/gslb_types.go +++ b/api/v1beta1/gslb_types.go @@ -36,8 +36,6 @@ type Strategy struct { PrimaryGeoTag string `json:"primaryGeoTag,omitempty"` // Defines DNS record TTL in seconds DNSTtlSeconds int `json:"dnsTtlSeconds,omitempty"` - // Split brain TXT record expiration in seconds - SplitBrainThresholdSeconds int `json:"splitBrainThresholdSeconds,omitempty"` } // ResourceRef selects a resource defining the GSLB's load balancer and server diff --git a/chart/k8gb/README.md b/chart/k8gb/README.md index 94de77aeb1..393363b9a9 100644 --- a/chart/k8gb/README.md +++ b/chart/k8gb/README.md @@ -116,7 +116,6 @@ For Kubernetes `< 1.19` use this chart and k8gb in version `0.8.8` or lower. | k8gb.securityContext.runAsNonRoot | bool | `true` | For more options consult https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#securitycontext-v1-core | | k8gb.securityContext.runAsUser | int | `1000` | | | k8gb.serviceMonitor | object | `{"enabled":false}` | enable ServiceMonitor | -| k8gb.splitBrainCheck | bool | `false` | Enable SplitBrain check (Infoblox only) | | k8gb.validatingAdmissionPolicy | object | `{"enabled":false}` | enable validating admission policies | | ns1.enabled | bool | `false` | Enable NS1 provider | | ns1.ignoreSSL | bool | `false` | optional custom NS1 API endpoint for on-prem setups endpoint: https://api.nsone.net/v1/ | diff --git a/chart/k8gb/crd/k8gb.absa.oss_gslbs.yaml b/chart/k8gb/crd/k8gb.absa.oss_gslbs.yaml index fd62985d8a..4614be70ae 100644 --- a/chart/k8gb/crd/k8gb.absa.oss_gslbs.yaml +++ b/chart/k8gb/crd/k8gb.absa.oss_gslbs.yaml @@ -379,9 +379,6 @@ spec: primaryGeoTag: description: Primary Geo Tag. Valid for failover strategy only type: string - splitBrainThresholdSeconds: - description: Split brain TXT record expiration in seconds - type: integer type: description: Load balancing strategy type:(roundRobin|failover) type: string diff --git a/chart/k8gb/templates/deployment.yaml b/chart/k8gb/templates/deployment.yaml index 5420f7b74b..bc5a30776d 100644 --- a/chart/k8gb/templates/deployment.yaml +++ b/chart/k8gb/templates/deployment.yaml @@ -132,8 +132,6 @@ spec: value: {{ quote .Values.k8gb.log.level }} - name: NO_COLOR value: "true" - - name: SPLIT_BRAIN_CHECK - value: {{ quote .Values.k8gb.splitBrainCheck }} - name: METRICS_ADDRESS value: {{ .Values.k8gb.metricsAddress }} {{- if .Values.tracing.enabled }} diff --git a/chart/k8gb/values.schema.json b/chart/k8gb/values.schema.json index 8b40c2193f..3f85d0044c 100644 --- a/chart/k8gb/values.schema.json +++ b/chart/k8gb/values.schema.json @@ -307,9 +307,6 @@ "coredns": { "$ref": "#/definitions/k8gbCoreDNS" }, - "splitBrainCheck": { - "type": "boolean" - }, "metricsAddress": { "type": "string", "minLength": 1 diff --git a/chart/k8gb/values.yaml b/chart/k8gb/values.yaml index 1a46bd48e2..efcf58dc09 100644 --- a/chart/k8gb/values.yaml +++ b/chart/k8gb/values.yaml @@ -41,8 +41,6 @@ k8gb: format: simple # log format (simple,json) # -- log level (panic,fatal,error,warn,info,debug,trace) level: info # log level (panic,fatal,error,warn,info,debug,trace) - # -- Enable SplitBrain check (Infoblox only) - splitBrainCheck: false # -- Metrics server address metricsAddress: "0.0.0.0:8080" securityContext: diff --git a/controllers/depresolver/depresolver_spec.go b/controllers/depresolver/depresolver_spec.go index daa10451e3..da206bedab 100644 --- a/controllers/depresolver/depresolver_spec.go +++ b/controllers/depresolver/depresolver_spec.go @@ -29,8 +29,7 @@ import ( ) var predefinedStrategy = k8gbv1beta1.Strategy{ - DNSTtlSeconds: 30, - SplitBrainThresholdSeconds: 300, + DNSTtlSeconds: 30, } // ResolveGslbSpec fills Gslb by spec values. It executes always, when gslb is initialised. @@ -44,9 +43,6 @@ func (dr *DependencyResolver) ResolveGslbSpec(ctx context.Context, gslb *k8gbv1b if gslb.Spec.Strategy.DNSTtlSeconds == 0 { gslb.Spec.Strategy.DNSTtlSeconds = predefinedStrategy.DNSTtlSeconds } - if gslb.Spec.Strategy.SplitBrainThresholdSeconds == 0 { - gslb.Spec.Strategy.SplitBrainThresholdSeconds = predefinedStrategy.SplitBrainThresholdSeconds - } dr.errorSpec = dr.validateSpec(gslb.Spec.Strategy) if dr.errorSpec == nil { dr.errorSpec = client.Update(ctx, gslb) @@ -61,10 +57,6 @@ func (dr *DependencyResolver) validateSpec(strategy k8gbv1beta1.Strategy) (err e if err != nil { return } - err = field("SplitBrainThresholdSeconds", strategy.SplitBrainThresholdSeconds).isHigherOrEqualToZero().err - if err != nil { - return - } err = field("Type", strategy.Type).isOneOf(RoundRobinStrategy, GeoStrategy, FailoverStrategy).err if err != nil { return diff --git a/controllers/depresolver/depresolver_test.go b/controllers/depresolver/depresolver_test.go index c9b13abbd4..1959956629 100644 --- a/controllers/depresolver/depresolver_test.go +++ b/controllers/depresolver/depresolver_test.go @@ -96,7 +96,6 @@ func TestResolveSpecWithFilledFields(t *testing.T) { // assert assert.NoError(t, err) assert.Equal(t, 35, gslb.Spec.Strategy.DNSTtlSeconds) - assert.Equal(t, 305, gslb.Spec.Strategy.SplitBrainThresholdSeconds) assert.False(t, len(gslb.Spec.Strategy.Weight) == 0) assert.Equal(t, 15, gslb.Spec.Strategy.Weight["za"]) assert.Equal(t, 25, gslb.Spec.Strategy.Weight["eu"]) @@ -113,22 +112,9 @@ func TestResolveSpecWithoutFields(t *testing.T) { // assert assert.NoError(t, err) assert.Equal(t, predefinedStrategy.DNSTtlSeconds, gslb.Spec.Strategy.DNSTtlSeconds) - assert.Equal(t, predefinedStrategy.SplitBrainThresholdSeconds, gslb.Spec.Strategy.SplitBrainThresholdSeconds) assert.True(t, len(gslb.Spec.Strategy.Weight) == 0) } -func TestResolveSpecWithZeroSplitBrain(t *testing.T) { - // arrange - cl, gslb := getTestContext("./testdata/filled_omitempty_with_zero_splitbrain.yaml") - resolver := NewDependencyResolver() - // act - err := resolver.ResolveGslbSpec(context.TODO(), gslb, cl) - // assert - assert.NoError(t, err) - assert.Equal(t, 35, gslb.Spec.Strategy.DNSTtlSeconds) - assert.Equal(t, predefinedStrategy.SplitBrainThresholdSeconds, gslb.Spec.Strategy.SplitBrainThresholdSeconds) -} - func TestResolveSpecWithEmptyFields(t *testing.T) { // arrange cl, gslb := getTestContext("./testdata/invalid_omitempty_empty.yaml") @@ -138,17 +124,6 @@ func TestResolveSpecWithEmptyFields(t *testing.T) { // assert assert.NoError(t, err) assert.Equal(t, predefinedStrategy.DNSTtlSeconds, gslb.Spec.Strategy.DNSTtlSeconds) - assert.Equal(t, predefinedStrategy.SplitBrainThresholdSeconds, gslb.Spec.Strategy.SplitBrainThresholdSeconds) -} - -func TestResolveSpecWithNegativeFields(t *testing.T) { - // arrange - cl, gslb := getTestContext("./testdata/invalid_omitempty_negative.yaml") - resolver := NewDependencyResolver() - // act - err := resolver.ResolveGslbSpec(context.TODO(), gslb, cl) - // assert - assert.Error(t, err) } func TestResolveSpecWithType(t *testing.T) { @@ -226,13 +201,11 @@ func TestSpecRunWhenChanged(t *testing.T) { resolver := NewDependencyResolver() // act err1 := resolver.ResolveGslbSpec(ctx, gslb, cl) - gslb.Spec.Strategy.SplitBrainThresholdSeconds = 0 err2 := resolver.ResolveGslbSpec(ctx, gslb, cl) // assert assert.NoError(t, err1) // err2 would not be empty assert.NoError(t, err2) - assert.Equal(t, predefinedStrategy.SplitBrainThresholdSeconds, gslb.Spec.Strategy.SplitBrainThresholdSeconds) assert.Equal(t, 35, gslb.Spec.Strategy.DNSTtlSeconds) } diff --git a/controllers/depresolver/testdata/filled_omitempty.yaml b/controllers/depresolver/testdata/filled_omitempty.yaml index 4a406c5fe7..51f4b3db8f 100644 --- a/controllers/depresolver/testdata/filled_omitempty.yaml +++ b/controllers/depresolver/testdata/filled_omitempty.yaml @@ -35,7 +35,6 @@ spec: name: http strategy: type: roundRobin # Use a round robin load balancing strategy, when deciding which downstream clusters to route clients too - splitBrainThresholdSeconds: 305 dnsTtlSeconds: 35 weight: us: 60 diff --git a/controllers/depresolver/testdata/filled_omitempty_with_zero_splitbrain.yaml b/controllers/depresolver/testdata/filled_omitempty_with_zero_splitbrain.yaml index e70a7cda24..ce4f2da78f 100644 --- a/controllers/depresolver/testdata/filled_omitempty_with_zero_splitbrain.yaml +++ b/controllers/depresolver/testdata/filled_omitempty_with_zero_splitbrain.yaml @@ -35,6 +35,5 @@ spec: name: http strategy: type: roundRobin # Use a round robin load balancing strategy, when deciding which downstream clusters to route clients too - splitBrainThresholdSeconds: 0 dnsTtlSeconds: 35 diff --git a/controllers/depresolver/testdata/invalid_omitempty_empty.yaml b/controllers/depresolver/testdata/invalid_omitempty_empty.yaml index 981b89b7e3..0347849b50 100644 --- a/controllers/depresolver/testdata/invalid_omitempty_empty.yaml +++ b/controllers/depresolver/testdata/invalid_omitempty_empty.yaml @@ -35,5 +35,4 @@ spec: name: http strategy: type: roundRobin # Use a round robin load balancing strategy, when deciding which downstream clusters to route clients too - splitBrainThresholdSeconds: weight: diff --git a/controllers/depresolver/testdata/invalid_omitempty_negative.yaml b/controllers/depresolver/testdata/invalid_omitempty_negative.yaml deleted file mode 100644 index 46731946e3..0000000000 --- a/controllers/depresolver/testdata/invalid_omitempty_negative.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: k8gb.absa.oss/v1beta1 -kind: Gslb -metadata: - name: test-gslb - namespace: test-gslb -spec: - ingress: - rules: - - host: notfound.cloud.example.com # This is the GSLB enabled host that clients would use - http: # This section mirrors the same structure as that of an Ingress resource and will be used verbatim when creating the corresponding Ingress resource that will match the GSLB host - paths: - - path: / - backend: - service: - name: non-existing-app # Gslb should reflect NotFound status - port: - name: http - - host: unhealthy.cloud.example.com - http: - paths: - - path: / - backend: - service: - name: unhealthy-app # Gslb should reflect Unhealthy status - port: - name: http - - host: roundrobin.cloud.example.com - http: - paths: - - path: / - backend: - service: - name: frontend-podinfo # Gslb should reflect Healthy status and create associated DNS records - port: - name: http - strategy: - type: roundRobin # Use a round robin load balancing strategy, when deciding which downstream clusters to route clients too - splitBrainThresholdSeconds: -1 - diff --git a/controllers/gslb_controller_reconciliation.go b/controllers/gslb_controller_reconciliation.go index b7cef38abb..0be180d4d1 100644 --- a/controllers/gslb_controller_reconciliation.go +++ b/controllers/gslb_controller_reconciliation.go @@ -56,14 +56,13 @@ type GslbReconciler struct { } const ( - gslbFinalizer = "k8gb.absa.oss/finalizer" - primaryGeoTagAnnotation = "k8gb.io/primary-geotag" - strategyAnnotation = "k8gb.io/strategy" - dnsTTLSecondsAnnotation = "k8gb.io/dns-ttl-seconds" - splitBrainThresholdSecondsAnnotation = "k8gb.io/splitbrain-threshold-seconds" + gslbFinalizer = "k8gb.absa.oss/finalizer" + primaryGeoTagAnnotation = "k8gb.io/primary-geotag" + strategyAnnotation = "k8gb.io/strategy" + dnsTTLSecondsAnnotation = "k8gb.io/dns-ttl-seconds" ) -var k8gbAnnotations = []string{strategyAnnotation, primaryGeoTagAnnotation, dnsTTLSecondsAnnotation, splitBrainThresholdSecondsAnnotation} +var k8gbAnnotations = []string{strategyAnnotation, primaryGeoTagAnnotation, dnsTTLSecondsAnnotation} var log = logging.Logger() diff --git a/controllers/gslb_controller_setup.go b/controllers/gslb_controller_setup.go index a62a3db8c6..943d365621 100644 --- a/controllers/gslb_controller_setup.go +++ b/controllers/gslb_controller_setup.go @@ -204,10 +204,6 @@ func (r *GslbReconciler) parseStrategy(annotations map[string]string, strategy s if result.DNSTtlSeconds, err = toInt(annotationKey, annotationValue); err != nil { return result, err } - case splitBrainThresholdSecondsAnnotation: - if result.SplitBrainThresholdSeconds, err = toInt(annotationKey, annotationValue); err != nil { - return result, err - } case primaryGeoTagAnnotation: result.PrimaryGeoTag = annotationValue } diff --git a/controllers/refresolver/testdata/gslb_ingress_embedded.yaml b/controllers/refresolver/testdata/gslb_ingress_embedded.yaml index 5099a7275f..b27e2e4a26 100644 --- a/controllers/refresolver/testdata/gslb_ingress_embedded.yaml +++ b/controllers/refresolver/testdata/gslb_ingress_embedded.yaml @@ -19,5 +19,4 @@ spec: name: http strategy: type: roundRobin - splitBrainThresholdSeconds: 300 dnsTtlSeconds: 30 diff --git a/controllers/refresolver/testdata/gslb_ingress_referenced.yaml b/controllers/refresolver/testdata/gslb_ingress_referenced.yaml index b54336f986..8a2100b1f2 100644 --- a/controllers/refresolver/testdata/gslb_ingress_referenced.yaml +++ b/controllers/refresolver/testdata/gslb_ingress_referenced.yaml @@ -11,5 +11,4 @@ spec: app: ingress-referenced strategy: type: roundRobin - splitBrainThresholdSeconds: 300 dnsTtlSeconds: 30 diff --git a/controllers/refresolver/testdata/gslb_ingress_referenced_and_embedded.yaml b/controllers/refresolver/testdata/gslb_ingress_referenced_and_embedded.yaml index 0455a70bbe..11040e329f 100644 --- a/controllers/refresolver/testdata/gslb_ingress_referenced_and_embedded.yaml +++ b/controllers/refresolver/testdata/gslb_ingress_referenced_and_embedded.yaml @@ -24,5 +24,4 @@ spec: name: http strategy: type: roundRobin - splitBrainThresholdSeconds: 300 dnsTtlSeconds: 30 diff --git a/controllers/refresolver/testdata/gslb_istio.yaml b/controllers/refresolver/testdata/gslb_istio.yaml index 0ca91933d5..dcac0b1ebc 100644 --- a/controllers/refresolver/testdata/gslb_istio.yaml +++ b/controllers/refresolver/testdata/gslb_istio.yaml @@ -11,5 +11,4 @@ spec: app: istio strategy: type: roundRobin - splitBrainThresholdSeconds: 300 dnsTtlSeconds: 30 diff --git a/controllers/utils/annotations_test.go b/controllers/utils/annotations_test.go index 4607d980c5..3e2ed8a0e4 100644 --- a/controllers/utils/annotations_test.go +++ b/controllers/utils/annotations_test.go @@ -26,7 +26,7 @@ import ( var a2 = map[string]string{"k8gb.io/primary-geotag": "eu", "k8gb.io/strategy": "failover"} var a1 = map[string]string{"field.cattle.io/publicEndpoints": "dummy"} -var annotations = []string{"k8gb.io/primary-geotag", "k8gb.io/strategy", "k8gb.io/dns-ttl-seconds", "k8gb.io/splitbrain-threshold-seconds"} +var annotations = []string{"k8gb.io/primary-geotag", "k8gb.io/strategy", "k8gb.io/dns-ttl-seconds"} func TestAddNewAnnotations(t *testing.T) { // arrange diff --git a/deploy/crds/k8gb.absa.oss_v1beta1_gslb_cr_notfound_istio.yaml b/deploy/crds/k8gb.absa.oss_v1beta1_gslb_cr_notfound_istio.yaml index 8fe4acc725..5d5db48a85 100644 --- a/deploy/crds/k8gb.absa.oss_v1beta1_gslb_cr_notfound_istio.yaml +++ b/deploy/crds/k8gb.absa.oss_v1beta1_gslb_cr_notfound_istio.yaml @@ -47,5 +47,4 @@ spec: app: notfound-istio strategy: type: roundRobin - splitBrainThresholdSeconds: 300 dnsTtlSeconds: 30 diff --git a/deploy/crds/k8gb.absa.oss_v1beta1_gslb_cr_roundrobin_ingress.yaml b/deploy/crds/k8gb.absa.oss_v1beta1_gslb_cr_roundrobin_ingress.yaml index e1f213ffb5..fdc0ca4902 100644 --- a/deploy/crds/k8gb.absa.oss_v1beta1_gslb_cr_roundrobin_ingress.yaml +++ b/deploy/crds/k8gb.absa.oss_v1beta1_gslb_cr_roundrobin_ingress.yaml @@ -39,5 +39,4 @@ spec: name: http strategy: type: roundRobin # Use a round robin load balancing strategy, when deciding which downstream clusters to route clients too - splitBrainThresholdSeconds: 300 # Threshold after which external cluster is filtered out from delegated zone when it doesn't look alive dnsTtlSeconds: 30 # TTL value for automatically created DNS records diff --git a/deploy/crds/k8gb.absa.oss_v1beta1_gslb_cr_roundrobin_ingress_ref.yaml b/deploy/crds/k8gb.absa.oss_v1beta1_gslb_cr_roundrobin_ingress_ref.yaml index b4ef6a8abc..0e4c31a8d9 100644 --- a/deploy/crds/k8gb.absa.oss_v1beta1_gslb_cr_roundrobin_ingress_ref.yaml +++ b/deploy/crds/k8gb.absa.oss_v1beta1_gslb_cr_roundrobin_ingress_ref.yaml @@ -52,5 +52,4 @@ spec: app: roundrobin-test-gslb strategy: type: roundRobin # Use a round robin load balancing strategy, when deciding which downstream clusters to route clients to - splitBrainThresholdSeconds: 300 # Threshold after which external cluster is filtered out from delegated zone when it doesn't look alive dnsTtlSeconds: 30 # TTL value for automatically created DNS records diff --git a/deploy/crds/k8gb.absa.oss_v1beta1_gslb_cr_roundrobin_istio.yaml b/deploy/crds/k8gb.absa.oss_v1beta1_gslb_cr_roundrobin_istio.yaml index 6c54d90dd0..e5c2ad8e90 100644 --- a/deploy/crds/k8gb.absa.oss_v1beta1_gslb_cr_roundrobin_istio.yaml +++ b/deploy/crds/k8gb.absa.oss_v1beta1_gslb_cr_roundrobin_istio.yaml @@ -47,5 +47,4 @@ spec: app: roundrobin-istio strategy: type: roundRobin - splitBrainThresholdSeconds: 300 dnsTtlSeconds: 30 diff --git a/deploy/crds/k8gb.absa.oss_v1beta1_gslb_cr_unhealthy_istio.yaml b/deploy/crds/k8gb.absa.oss_v1beta1_gslb_cr_unhealthy_istio.yaml index 1c13a5a7de..b3b5a80cf5 100644 --- a/deploy/crds/k8gb.absa.oss_v1beta1_gslb_cr_unhealthy_istio.yaml +++ b/deploy/crds/k8gb.absa.oss_v1beta1_gslb_cr_unhealthy_istio.yaml @@ -47,5 +47,4 @@ spec: app: unhealthy-istio strategy: type: roundRobin - splitBrainThresholdSeconds: 300 dnsTtlSeconds: 30 diff --git a/docs/deploy_cloudflare.md b/docs/deploy_cloudflare.md index ba50f53461..e3b76e22a1 100644 --- a/docs/deploy_cloudflare.md +++ b/docs/deploy_cloudflare.md @@ -93,7 +93,6 @@ spec: strategy: dnsTtlSeconds: 60 # Minimum for non-Enterprise Cloudflare https://developers.cloudflare.com/dns/manage-dns-records/reference/ttl/ primaryGeoTag: eu - splitBrainThresholdSeconds: 300 type: failover ``` diff --git a/docs/examples/cloudflare/test-gslb-failover.yaml b/docs/examples/cloudflare/test-gslb-failover.yaml index f292d857fb..2bcbf57997 100644 --- a/docs/examples/cloudflare/test-gslb-failover.yaml +++ b/docs/examples/cloudflare/test-gslb-failover.yaml @@ -34,5 +34,4 @@ spec: strategy: dnsTtlSeconds: 60 # Minimum for non-Enterprise Cloudflare https://developers.cloudflare.com/dns/manage-dns-records/reference/ttl/ primaryGeoTag: eu - splitBrainThresholdSeconds: 300 type: failover diff --git a/docs/examples/route53/k8gb/gslb-roundrobin.yaml b/docs/examples/route53/k8gb/gslb-roundrobin.yaml index 6eab171515..b52a4f39ed 100644 --- a/docs/examples/route53/k8gb/gslb-roundrobin.yaml +++ b/docs/examples/route53/k8gb/gslb-roundrobin.yaml @@ -50,5 +50,4 @@ spec: app: test-gslb strategy: type: roundRobin # Use a round robin load balancing strategy, when deciding which downstream clusters to route clients too - splitBrainThresholdSeconds: 300 # Threshold after which external cluster is filtered out from delegated zone when it doesn't look alive dnsTtlSeconds: 30 # TTL value for automatically created DNS records diff --git a/docs/examples/windowsdns/k8gb/aks1-helm-values.yaml b/docs/examples/windowsdns/k8gb/aks1-helm-values.yaml index 898c2052ae..e95603545f 100644 --- a/docs/examples/windowsdns/k8gb/aks1-helm-values.yaml +++ b/docs/examples/windowsdns/k8gb/aks1-helm-values.yaml @@ -23,8 +23,6 @@ k8gb: format: json # log format (simple,json) # -- log level (panic,fatal,error,warn,info,debug,trace) level: info # log level (panic,fatal,error,warn,info,debug,trace) - # -- Enable SplitBrain check (Infoblox only) - splitBrainCheck: false # -- Metrics server address metricsAddress: "0.0.0.0:8080" securityContext: diff --git a/docs/examples/windowsdns/k8gb/aks2-helm-values.yaml b/docs/examples/windowsdns/k8gb/aks2-helm-values.yaml index 1f8a1176c4..b2c373141c 100644 --- a/docs/examples/windowsdns/k8gb/aks2-helm-values.yaml +++ b/docs/examples/windowsdns/k8gb/aks2-helm-values.yaml @@ -23,8 +23,6 @@ k8gb: format: json # log format (simple,json) # -- log level (panic,fatal,error,warn,info,debug,trace) level: info # log level (panic,fatal,error,warn,info,debug,trace) - # -- Enable SplitBrain check (Infoblox only) - splitBrainCheck: false # -- Metrics server address metricsAddress: "0.0.0.0:8080" securityContext: diff --git a/terratest/examples/failover-lifecycle.yaml b/terratest/examples/failover-lifecycle.yaml index 3a90a5cdf7..852540f7b5 100644 --- a/terratest/examples/failover-lifecycle.yaml +++ b/terratest/examples/failover-lifecycle.yaml @@ -20,5 +20,4 @@ spec: strategy: type: failover primaryGeoTag: "eu" - splitBrainThresholdSeconds: 600 dnsTtlSeconds: 5 diff --git a/terratest/examples/ingress-annotation-failover.yaml b/terratest/examples/ingress-annotation-failover.yaml index 5d1634b12f..8ef3519d29 100644 --- a/terratest/examples/ingress-annotation-failover.yaml +++ b/terratest/examples/ingress-annotation-failover.yaml @@ -5,7 +5,6 @@ metadata: k8gb.io/strategy: failover k8gb.io/primary-geotag: "eu" k8gb.io/dns-ttl-seconds: "5" - k8gb.io/splitbrain-threshold-seconds: "600" name: test-gslb-annotation-failover spec: ingressClassName: nginx diff --git a/terratest/test/k8gb_ingress_annotation_failover_test.go b/terratest/test/k8gb_ingress_annotation_failover_test.go index acebaf37f9..e9fea07d5b 100644 --- a/terratest/test/k8gb_ingress_annotation_failover_test.go +++ b/terratest/test/k8gb_ingress_annotation_failover_test.go @@ -67,7 +67,6 @@ func TestK8gbIngressAnnotationFailover(t *testing.T) { utils.AssertGslbSpec(t, options, "test-gslb-annotation-failover", ".spec.strategy.type", "failover") utils.AssertGslbSpec(t, options, "test-gslb-annotation-failover", ".spec.strategy.primaryGeoTag", settings.PrimaryGeoTag) utils.AssertGslbSpec(t, options, "test-gslb-annotation-failover", ".spec.strategy.dnsTtlSeconds", "5") - utils.AssertGslbSpec(t, options, "test-gslb-annotation-failover", ".spec.strategy.splitBrainThresholdSeconds", "600") t.Run("Broken ingress is not proccessed", func(t *testing.T) { utils.CreateGslb(t, options, settings, brokenResourcePath) diff --git a/terratest/test/k8gb_lifecycle_test.go b/terratest/test/k8gb_lifecycle_test.go index 01e978795a..7a8f6540c1 100644 --- a/terratest/test/k8gb_lifecycle_test.go +++ b/terratest/test/k8gb_lifecycle_test.go @@ -41,7 +41,6 @@ func TestK8gbRepeatedlyRecreatedFromIngress(t *testing.T) { const name = "test-gslb-failover-simple" assertStrategy := func(t *testing.T, options *k8s.KubectlOptions) { - utils.AssertGslbSpec(t, options, name, "spec.strategy.splitBrainThresholdSeconds", "300") utils.AssertGslbSpec(t, options, name, "spec.strategy.dnsTtlSeconds", "5") utils.AssertGslbSpec(t, options, name, "spec.strategy.primaryGeoTag", settings.PrimaryGeoTag) utils.AssertGslbSpec(t, options, name, "spec.strategy.type", "failover") @@ -103,7 +102,6 @@ func TestK8gbSpecKeepsStableAfterIngressUpdates(t *testing.T) { const name = "test-gslb-lifecycle" assertStrategy := func(t *testing.T, options *k8s.KubectlOptions) { - utils.AssertGslbSpec(t, options, name, "spec.strategy.splitBrainThresholdSeconds", "600") utils.AssertGslbSpec(t, options, name, "spec.strategy.dnsTtlSeconds", "5") utils.AssertGslbSpec(t, options, name, "spec.strategy.primaryGeoTag", settings.PrimaryGeoTag) utils.AssertGslbSpec(t, options, name, "spec.strategy.type", "failover")