Repository: gardener/external-dns-management (go)

Issue:
fix(deps): update module github.com/gophercloud/gophercloud to v2

Pull request description:
Update `openstack-designate` provider library `gophercloud`
**What this PR does / why we need it**:
Bump `openstack-designate` provider library `gophercloud` from version `v0.24.0` to `v2.7.0` and fix method signatures.

**Which issue(s) this PR fixes**:
Fixes #487 

**Special notes for your reviewer**:

**Release note**:
<!--  Write your release note:
1. Enter your release note in the below block.
2. If no release note is required, just write "NONE" within the block.

Format of block header: <category> <target_group>
Possible values:
- category:       breaking|feature|bugfix|doc|other
- target_group:   user|operator|developer|dependency
-->
```other operator
Bump `openstack-designate` provider library `gophercloud` from version `v0.24.0` to `v2.7.0`.
```


Patch:
diff --git a/go.mod b/go.mod
index 875efd3c..b1c09d97 100644
--- a/go.mod
+++ b/go.mod
@@ -24,8 +24,8 @@ require (
 	github.com/go-logr/logr v1.4.2
 	github.com/go-openapi/runtime v0.24.1
 	github.com/go-openapi/strfmt v0.21.2
-	github.com/gophercloud/gophercloud v0.24.0
-	github.com/gophercloud/utils v0.0.0-20220307143606-8e7800759d16
+	github.com/gophercloud/gophercloud/v2 v2.7.0
+	github.com/gophercloud/utils/v2 v2.0.0-20250506092640-af27464b6166
 	github.com/infobloxopen/infoblox-go-client/v2 v2.1.0
 	github.com/jellydator/ttlcache/v3 v3.3.0
 	github.com/joeig/go-powerdns/v3 v3.10.0
@@ -36,7 +36,7 @@ require (
 	github.com/prometheus/client_golang v1.22.0
 	github.com/spf13/cobra v1.9.1
 	github.com/spf13/pflag v1.0.6
-	go.uber.org/atomic v1.10.0
+	go.uber.org/atomic v1.11.0
 	go.uber.org/automaxprocs v1.6.0
 	golang.org/x/oauth2 v0.28.0
 	golang.org/x/sync v0.14.0
@@ -57,11 +57,12 @@ require (
 	sigs.k8s.io/controller-runtime v0.20.4
 	sigs.k8s.io/controller-tools v0.17.3
 	sigs.k8s.io/gateway-api v1.2.1
-	sigs.k8s.io/kind v0.26.0
+	sigs.k8s.io/kind v0.29.0
 	sigs.k8s.io/yaml v1.4.0
 )
 
 require (
+	al.essio.dev/pkg/shellescape v1.5.1 // indirect
 	cloud.google.com/go/auth v0.13.0 // indirect
 	cloud.google.com/go/auth/oauth2adapt v0.2.6 // indirect
 	cloud.google.com/go/compute/metadata v0.6.0 // indirect
@@ -72,7 +73,6 @@ require (
 	github.com/Masterminds/goutils v1.1.1 // indirect
 	github.com/Masterminds/semver/v3 v3.3.1 // indirect
 	github.com/Masterminds/sprig/v3 v3.3.0 // indirect
-	github.com/alessio/shellescape v1.4.2 // indirect
 	github.com/alibabacloud-go/alibabacloud-gateway-spi v0.0.5 // indirect
 	github.com/alibabacloud-go/debug v1.0.1 // indirect
 	github.com/alibabacloud-go/endpoint-util v1.1.0 // indirect
@@ -120,6 +120,7 @@ require (
 	github.com/go-task/slim-sprig/v3 v3.0.0 // indirect
 	github.com/gobuffalo/flect v1.0.3 // indirect
 	github.com/gobwas/glob v0.2.3 // indirect
+	github.com/gofrs/uuid/v5 v5.3.2 // indirect
 	github.com/gogo/protobuf v1.3.2 // indirect
 	github.com/golang-jwt/jwt/v5 v5.2.2 // indirect
 	github.com/golang/protobuf v1.5.4 // indirect
@@ -129,7 +130,6 @@ require (
 	github.com/google/gofuzz v1.2.0 // indirect
 	github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad // indirect
 	github.com/google/s2a-go v0.1.8 // indirect
-	github.com/google/safetext v0.0.0-20220905092116-b49f7bc46da2 // indirect
 	github.com/google/uuid v1.6.0 // indirect
 	github.com/googleapis/enterprise-certificate-proxy v0.3.4 // indirect
 	github.com/googleapis/gax-go/v2 v2.14.1 // indirect
@@ -148,7 +148,6 @@ require (
 	github.com/mattn/go-colorable v0.1.13 // indirect
 	github.com/mattn/go-isatty v0.0.20 // indirect
 	github.com/mitchellh/copystructure v1.2.0 // indirect
-	github.com/mitchellh/go-homedir v1.1.0 // indirect
 	github.com/mitchellh/mapstructure v1.5.0 // indirect
 	github.com/mitchellh/reflectwalk v1.0.2 // indirect
 	github.com/moby/spdystream v0.5.0 // indirect
diff --git a/go.sum b/go.sum
index 60229ee5..518d2dfc 100644
--- a/go.sum
+++ b/go.sum
@@ -1,3 +1,5 @@
+al.essio.dev/pkg/shellescape v1.5.1 h1:86HrALUujYS/h+GtqoB26SBEdkWfmMI6FubjXlsXyho=
+al.essio.dev/pkg/shellescape v1.5.1/go.mod h1:6sIqp7X2P6mThCQ7twERpZTuigpr6KbZWtls1U8I890=
 cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
 cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
 cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU=
@@ -73,8 +75,6 @@ github.com/ahmetb/gen-crd-api-reference-docs v0.3.0 h1:+XfOU14S4bGuwyvCijJwhhBIj
 github.com/ahmetb/gen-crd-api-reference-docs v0.3.0/go.mod h1:TdjdkYhlOifCQWPs1UdTma97kQQMozf5h26hTuG70u8=
 github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
 github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
-github.com/alessio/shellescape v1.4.2 h1:MHPfaU+ddJ0/bYWpgIeUnQUqKrlJ1S7BfEYPM4uEoM0=
-github.com/alessio/shellescape v1.4.2/go.mod h1:PZAiSCk0LJaZkiCSkPv8qIobYglO3FPpyFjDCtHLS30=
 github.com/alibabacloud-go/alibabacloud-gateway-pop v0.0.6 h1:eIf+iGJxdU4U9ypaUfbtOWCsZSbTb8AUHvyPrxu6mAA=
 github.com/alibabacloud-go/alibabacloud-gateway-pop v0.0.6/go.mod h1:4EUIoxs/do24zMOGGqYVWgw0s9NtiylnJglOeEB5UJo=
 github.com/alibabacloud-go/alibabacloud-gateway-spi v0.0.4/go.mod h1:sCavSAvdzOjul4cEqeVtvlSaSScfNsTQ+46HwlTL1hc=
@@ -388,6 +388,8 @@ github.com/gobuffalo/packr/v2 v2.2.0/go.mod h1:CaAwI0GPIAv+5wKLtv8Afwl+Cm78K/I/V
 github.com/gobuffalo/syncx v0.0.0-20190224160051-33c29581e754/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw=
 github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y=
 github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8=
+github.com/gofrs/uuid/v5 v5.3.2 h1:2jfO8j3XgSwlz/wHqemAEugfnTlikAYHhnqQ8Xh4fE0=
+github.com/gofrs/uuid/v5 v5.3.2/go.mod h1:CDOjlDMVAtN56jqyRUZh58JT31Tiw7/oQyEXZV+9bD8=
 github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
 github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
 github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
@@ -444,8 +446,8 @@ github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad/go.mod h1:vavhavw2zAx
 github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
 github.com/google/s2a-go v0.1.8 h1:zZDs9gcbt9ZPLV0ndSyQk6Kacx2g/X+SKYovpnz3SMM=
 github.com/google/s2a-go v0.1.8/go.mod h1:6iNWHTpQ+nfNRN5E00MSdfDwVesa8hhS32PhPO8deJA=
-github.com/google/safetext v0.0.0-20220905092116-b49f7bc46da2 h1:SJ+NtwL6QaZ21U+IrK7d0gGgpjGGvd2kz+FzTHVzdqI=
-github.com/google/safetext v0.0.0-20220905092116-b49f7bc46da2/go.mod h1:Tv1PlzqC9t8wNnpPdctvtSUOPUUg4SHeE6vR1Ir2hmg=
+github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4=
+github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ=
 github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
@@ -457,11 +459,10 @@ github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5m
 github.com/googleapis/gax-go/v2 v2.14.1 h1:hb0FFeiPaQskmvakKu5EbCbpntQn48jyHuvrkurSS/Q=
 github.com/googleapis/gax-go/v2 v2.14.1/go.mod h1:Hb/NubMaVM88SrNkvl8X/o8XWwDJEPqouaLeN2IUxoA=
 github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg=
-github.com/gophercloud/gophercloud v0.20.0/go.mod h1:wRtmUelyIIv3CSSDI47aUwbs075O6i+LY+pXsKCBsb4=
-github.com/gophercloud/gophercloud v0.24.0 h1:jDsIMGJ1KZpAjYfQgGI2coNQj5Q83oPzuiGJRFWgMzw=
-github.com/gophercloud/gophercloud v0.24.0/go.mod h1:Q8fZtyi5zZxPS/j9aj3sSxtvj41AdQMDwyo1myduD5c=
-github.com/gophercloud/utils v0.0.0-20220307143606-8e7800759d16 h1:slt/exMiitZNY+5OrKJ6ZvSogqN+SyzeYzAtyI6db9A=
-github.com/gophercloud/utils v0.0.0-20220307143606-8e7800759d16/go.mod h1:qOGlfG6OIJ193/c3Xt/XjOfHataNZdQcVgiu93LxBUM=
+github.com/gophercloud/gophercloud/v2 v2.7.0 h1:o0m4kgVcPgHlcXiWAjoVxGd8QCmvM5VU+YM71pFbn0E=
+github.com/gophercloud/gophercloud/v2 v2.7.0/go.mod h1:Ki/ILhYZr/5EPebrPL9Ej+tUg4lqx71/YH2JWVeU+Qk=
+github.com/gophercloud/utils/v2 v2.0.0-20250506092640-af27464b6166 h1:U82pil2tMV/BkeWmy3eKT9mTmodSfwOw+Czl/s5eBrw=
+github.com/gophercloud/utils/v2 v2.0.0-20250506092640-af27464b6166/go.mod h1:WypkO28BNmRXS8EPyW6I58L3qrBUy3w60schxwx7ZVc=
 github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
 github.com/gopherjs/gopherjs v0.0.0-20200217142428-fce0ec30dd00/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
 github.com/gorilla/handlers v1.4.2/go.mod h1:Qkdc/uu4tH4g6mTK6auzZ766c4CA0Ng8+o/OAirnOIQ=
@@ -477,7 +478,6 @@ github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY
 github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
 github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo=
 github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM=
-github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
 github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
 github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
 github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
@@ -571,8 +571,6 @@ github.com/miekg/dns v1.1.63 h1:8M5aAw6OMZfFXTT7K5V0Eu5YiiL8l7nUAkyN6C9YwaY=
 github.com/miekg/dns v1.1.63/go.mod h1:6NGHfjhpmr5lt3XPLuyfDJi5AXbNIPM9PY6H6sF1Nfs=
 github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw=
 github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s=
-github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y=
-github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
 github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
 github.com/mitchellh/mapstructure v1.3.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
 github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
@@ -795,8 +793,8 @@ go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRY
 go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM=
 go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8=
 go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
-go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ=
-go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
+go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE=
+go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
 go.uber.org/automaxprocs v1.6.0 h1:O3y2/QNTOdbF+e/dpXNNW7Rx2hZ4sTIPyybbxyNqTUs=
 go.uber.org/automaxprocs v1.6.0/go.mod h1:ifeIMSnPZuznNm6jmdzmU3/bfk01Fe2fotchwEFJ8r8=
 go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
@@ -827,9 +825,7 @@ golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPh
 golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/crypto v0.0.0-20201012173705-84dcc777aaee/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/crypto v0.0.0-20201216223049-8b5274cf687f/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
-golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
 golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
-golang.org/x/crypto v0.0.0-20211202192323-5770296d904e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
 golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4=
 golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg=
 golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU=
@@ -896,7 +892,6 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwY
 golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
 golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
 golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM=
-golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
 golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
 golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
 golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
@@ -961,7 +956,6 @@ golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7w
 golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
@@ -1203,8 +1197,8 @@ sigs.k8s.io/gateway-api v1.2.1 h1:fZZ/+RyRb+Y5tGkwxFKuYuSRQHu9dZtbjenblleOLHM=
 sigs.k8s.io/gateway-api v1.2.1/go.mod h1:EpNfEXNjiYfUJypf0eZ0P5iXA9ekSGWaS1WgPaM42X0=
 sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE=
 sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg=
-sigs.k8s.io/kind v0.26.0 h1:8fS6I0Q5WGlmLprSpH0DarlOSdcsv0txnwc93J2BP7M=
-sigs.k8s.io/kind v0.26.0/go.mod h1:t7ueEpzPYJvHA8aeLtI52rtFftNgUYUaCwvxjk7phfw=
+sigs.k8s.io/kind v0.29.0 h1:3TpCsyh908IkXXpcSnsMjWdwdWjIl7o9IMZImZCWFnI=
+sigs.k8s.io/kind v0.29.0/go.mod h1:ldWQisw2NYyM6k64o/tkZng/1qQW7OlzcN5a8geJX3o=
 sigs.k8s.io/randfill v0.0.0-20250304075658-069ef1bbf016 h1:kXv6kKdoEtedwuqMmkqhbkgvYKeycVbC8+iPCP9j5kQ=
 sigs.k8s.io/randfill v0.0.0-20250304075658-069ef1bbf016/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY=
 sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
diff --git a/pkg/controller/provider/openstack/designateclient.go b/pkg/controller/provider/openstack/designateclient.go
index f1a1fb96..29341bd0 100644
--- a/pkg/controller/provider/openstack/designateclient.go
+++ b/pkg/controller/provider/openstack/designateclient.go
@@ -5,6 +5,7 @@
 package openstack
 
 import (
+	"context"
 	"crypto/tls"
 	"crypto/x509"
 	"fmt"
@@ -13,12 +14,12 @@ import (
 	"time"
 
 	"github.com/gardener/controller-manager-library/pkg/logger"
-	"github.com/gophercloud/gophercloud"
-	"github.com/gophercloud/gophercloud/openstack"
-	"github.com/gophercloud/gophercloud/openstack/dns/v2/recordsets"
-	"github.com/gophercloud/gophercloud/openstack/dns/v2/zones"
-	"github.com/gophercloud/gophercloud/pagination"
-	"github.com/gophercloud/utils/openstack/clientconfig"
+	"github.com/gophercloud/gophercloud/v2"
+	"github.com/gophercloud/gophercloud/v2/openstack"
+	"github.com/gophercloud/gophercloud/v2/openstack/dns/v2/recordsets"
+	"github.com/gophercloud/gophercloud/v2/openstack/dns/v2/zones"
+	"github.com/gophercloud/gophercloud/v2/pagination"
+	"github.com/gophercloud/utils/v2/openstack/clientconfig"
 
 	"github.com/gardener/external-dns-management/pkg/dns/provider"
 )
@@ -26,22 +27,22 @@ import (
 // interface between provider and OpenStack DNS API
 type designateClientInterface interface {
 	// ForEachZone calls handler for each zone managed by the Designate
-	ForEachZone(handler func(zone *zones.Zone) error) error
+	ForEachZone(ctx context.Context, handler func(zone *zones.Zone) error) error
 
 	// ForEachRecordSet calls handler for each recordset in the given DNS zone
-	ForEachRecordSet(zoneID string, handler func(recordSet *recordsets.RecordSet) error) error
+	ForEachRecordSet(ctx context.Context, zoneID string, handler func(recordSet *recordsets.RecordSet) error) error
 
 	// ForEachRecordSet calls handler for each recordset in the given DNS zone restricted to rrtype
-	ForEachRecordSetFilterByTypeAndName(zoneID string, rrtype string, name string, handler func(recordSet *recordsets.RecordSet) error) error
+	ForEachRecordSetFilterByTypeAndName(ctx context.Context, zoneID string, rrtype string, name string, handler func(recordSet *recordsets.RecordSet) error) error
 
 	// CreateRecordSet creates recordset in the given DNS zone
-	CreateRecordSet(zoneID string, opts recordsets.CreateOpts) (string, error)
+	CreateRecordSet(ctx context.Context, zoneID string, opts recordsets.CreateOpts) (string, error)
 
 	// UpdateRecordSet updates recordset in the given DNS zone
-	UpdateRecordSet(zoneID, recordSetID string, opts recordsets.UpdateOpts) error
+	UpdateRecordSet(ctx context.Context, zoneID, recordSetID string, opts recordsets.UpdateOpts) error
 
 	// DeleteRecordSet deletes recordset in the given DNS zone
-	DeleteRecordSet(zoneID, recordSetID string) error
+	DeleteRecordSet(ctx context.Context, zoneID, recordSetID string) error
 }
 
 // implementation of the designateClientInterface
@@ -62,7 +63,7 @@ type clientAuthConfig struct {
 }
 
 // authenticate in OpenStack and obtain Designate service endpoint
-func createDesignateServiceClient(logger logger.LogContext, clientAuthConfig *clientAuthConfig) (*gophercloud.ServiceClient, error) {
+func createDesignateServiceClient(ctx context.Context, logger logger.LogContext, clientAuthConfig *clientAuthConfig) (*gophercloud.ServiceClient, error) {
 	clientOpts := new(clientconfig.ClientOpts)
 	clientOpts.AuthInfo = &clientAuthConfig.AuthInfo
 	if clientAuthConfig.ApplicationCredentialSecret != "" {
@@ -117,7 +118,7 @@ func createDesignateServiceClient(logger logger.LogContext, clientAuthConfig *cl
 	}
 	providerClient.HTTPClient.Transport = transport
 
-	if err = openstack.Authenticate(providerClient, *ao); err != nil {
+	if err = openstack.Authenticate(ctx, providerClient, *ao); err != nil {
 		return nil, err
 	}
 
@@ -134,11 +135,11 @@ func createDesignateServiceClient(logger logger.LogContext, clientAuthConfig *cl
 }
 
 // ForEachZone calls handler for each zone managed by the Designate
-func (c designateClient) ForEachZone(handler func(zone *zones.Zone) error) error {
+func (c designateClient) ForEachZone(ctx context.Context, handler func(zone *zones.Zone) error) error {
 	pager := zones.List(c.serviceClient, zones.ListOpts{})
 	rt := provider.M_LISTZONES
-	return pager.EachPage(
-		func(page pagination.Page) (bool, error) {
+	return pager.EachPage(ctx,
+		func(_ context.Context, page pagination.Page) (bool, error) {
 			c.metrics.AddGenericRequests(rt, 1)
 			rt = provider.M_PLISTZONES
 			list, err := zones.ExtractZones(page)
@@ -157,16 +158,16 @@ func (c designateClient) ForEachZone(handler func(zone *zones.Zone) error) error
 }
 
 // ForEachRecordSet calls handler for each recordset in the given DNS zone
-func (c designateClient) ForEachRecordSet(zoneID string, handler func(recordSet *recordsets.RecordSet) error) error {
-	return c.ForEachRecordSetFilterByTypeAndName(zoneID, "", "", handler)
+func (c designateClient) ForEachRecordSet(ctx context.Context, zoneID string, handler func(recordSet *recordsets.RecordSet) error) error {
+	return c.ForEachRecordSetFilterByTypeAndName(ctx, zoneID, "", "", handler)
 }
 
 // ForEachRecordSet calls handler for each recordset in the given DNS zone restricted to rrtype
-func (c designateClient) ForEachRecordSetFilterByTypeAndName(zoneID string, rrtype string, name string, handler func(recordSet *recordsets.RecordSet) error) error {
+func (c designateClient) ForEachRecordSetFilterByTypeAndName(ctx context.Context, zoneID string, rrtype string, name string, handler func(recordSet *recordsets.RecordSet) error) error {
 	pager := recordsets.ListByZone(c.serviceClient, zoneID, recordsets.ListOpts{Type: rrtype, Name: name})
 	rt := provider.M_LISTRECORDS
-	return pager.EachPage(
-		func(page pagination.Page) (bool, error) {
+	return pager.EachPage(ctx,
+		func(_ context.Context, page pagination.Page) (bool, error) {
 			c.metrics.AddZoneRequests(zoneID, rt, 1)
 			rt = provider.M_PLISTRECORDS
 			list, err := recordsets.ExtractRecordSets(page)
@@ -185,8 +186,8 @@ func (c designateClient) ForEachRecordSetFilterByTypeAndName(zoneID string, rrty
 }
 
 // CreateRecordSet creates recordset in the given DNS zone
-func (c designateClient) CreateRecordSet(zoneID string, opts recordsets.CreateOpts) (string, error) {
-	r, err := recordsets.Create(c.serviceClient, zoneID, opts).Extract()
+func (c designateClient) CreateRecordSet(ctx context.Context, zoneID string, opts recordsets.CreateOpts) (string, error) {
+	r, err := recordsets.Create(ctx, c.serviceClient, zoneID, opts).Extract()
 	c.metrics.AddZoneRequests(zoneID, provider.M_CREATERECORDS, 1)
 	if err != nil {
 		return "", err
@@ -195,15 +196,15 @@ func (c designateClient) CreateRecordSet(zoneID string, opts recordsets.CreateOp
 }
 
 // UpdateRecordSet updates recordset in the given DNS zone
-func (c designateClient) UpdateRecordSet(zoneID, recordSetID string, opts recordsets.UpdateOpts) error {
-	_, err := recordsets.Update(c.serviceClient, zoneID, recordSetID, opts).Extract()
+func (c designateClient) UpdateRecordSet(ctx context.Context, zoneID, recordSetID string, opts recordsets.UpdateOpts) error {
+	_, err := recordsets.Update(ctx, c.serviceClient, zoneID, recordSetID, opts).Extract()
 	c.metrics.AddZoneRequests(zoneID, provider.M_UPDATERECORDS, 1)
 	return err
 }
 
 // DeleteRecordSet deletes recordset in the given DNS zone
-func (c designateClient) DeleteRecordSet(zoneID, recordSetID string) error {
-	err := recordsets.Delete(c.serviceClient, zoneID, recordSetID).ExtractErr()
+func (c designateClient) DeleteRecordSet(ctx context.Context, zoneID, recordSetID string) error {
+	err := recordsets.Delete(ctx, c.serviceClient, zoneID, recordSetID).ExtractErr()
 	c.metrics.AddZoneRequests(zoneID, provider.M_DELETERECORDS, 1)
 	return err
 }
diff --git a/pkg/controller/provider/openstack/execution.go b/pkg/controller/provider/openstack/execution.go
index 2c833186..465f771f 100644
--- a/pkg/controller/provider/openstack/execution.go
+++ b/pkg/controller/provider/openstack/execution.go
@@ -5,10 +5,11 @@
 package openstack
 
 import (
+	"context"
 	"fmt"
 
 	"github.com/gardener/controller-manager-library/pkg/logger"
-	"github.com/gophercloud/gophercloud/openstack/dns/v2/recordsets"
+	"github.com/gophercloud/gophercloud/v2/openstack/dns/v2/recordsets"
 
 	"github.com/gardener/external-dns-management/pkg/dns"
 	"github.com/gardener/external-dns-management/pkg/dns/provider"
@@ -80,20 +81,20 @@ func (exec *Execution) buildMappedRecordSet(name string, rset *dns.RecordSet) (b
 	return bsOk, &osRSet
 }
 
-func (exec *Execution) apply(action string, rset *recordsets.RecordSet) error {
+func (exec *Execution) apply(ctx context.Context, action string, rset *recordsets.RecordSet) error {
 	var err error
 	switch action {
 	case provider.R_CREATE:
-		err = exec.create(rset)
+		err = exec.create(ctx, rset)
 	case provider.R_UPDATE:
-		err = exec.update(rset)
+		err = exec.update(ctx, rset)
 	case provider.R_DELETE:
-		err = exec.delete(rset)
+		err = exec.delete(ctx, rset)
 	}
 	return err
 }
 
-func (exec *Execution) create(rset *recordsets.RecordSet) error {
+func (exec *Execution) create(ctx context.Context, rset *recordsets.RecordSet) error {
 	opts := recordsets.CreateOpts{
 		Name:    dns.AlignHostname(rset.Name),
 		Type:    rset.Type,
@@ -101,11 +102,11 @@ func (exec *Execution) create(rset *recordsets.RecordSet) error {
 		Records: rset.Records,
 	}
 	exec.handler.config.RateLimiter.Accept()
-	_, err := exec.handler.client.CreateRecordSet(exec.zone.Id().ID, opts)
+	_, err := exec.handler.client.CreateRecordSet(ctx, exec.zone.Id().ID, opts)
 	return err
 }
 
-func (exec *Execution) lookupRecordSetID(rset *recordsets.RecordSet) (string, error) {
+func (exec *Execution) lookupRecordSetID(ctx context.Context, rset *recordsets.RecordSet) (string, error) {
 	name := dns.AlignHostname(rset.Name)
 	recordSetID := ""
 	handler := func(recordSet *recordsets.RecordSet) error {
@@ -115,7 +116,7 @@ func (exec *Execution) lookupRecordSetID(rset *recordsets.RecordSet) (string, er
 		return nil
 	}
 	exec.handler.config.RateLimiter.Accept()
-	err := exec.handler.client.ForEachRecordSetFilterByTypeAndName(exec.zone.Id().ID, rset.Type, name, handler)
+	err := exec.handler.client.ForEachRecordSetFilterByTypeAndName(ctx, exec.zone.Id().ID, rset.Type, name, handler)
 	if err != nil {
 		return "", fmt.Errorf("RecordSet lookup for %s %s failed with: %s", rset.Type, rset.Name, err)
 	}
@@ -125,8 +126,8 @@ func (exec *Execution) lookupRecordSetID(rset *recordsets.RecordSet) (string, er
 	return recordSetID, nil
 }
 
-func (exec *Execution) update(rset *recordsets.RecordSet) error {
-	recordSetID, err := exec.lookupRecordSetID(rset)
+func (exec *Execution) update(ctx context.Context, rset *recordsets.RecordSet) error {
+	recordSetID, err := exec.lookupRecordSetID(ctx, rset)
 	if err != nil {
 		return err
 	}
@@ -136,16 +137,16 @@ func (exec *Execution) update(rset *recordsets.RecordSet) error {
 		Records: rset.Records,
 	}
 	exec.handler.config.RateLimiter.Accept()
-	err = exec.handler.client.UpdateRecordSet(exec.zone.Id().ID, recordSetID, opts)
+	err = exec.handler.client.UpdateRecordSet(ctx, exec.zone.Id().ID, recordSetID, opts)
 	return err
 }
 
-func (exec *Execution) delete(rset *recordsets.RecordSet) error {
-	recordSetID, err := exec.lookupRecordSetID(rset)
+func (exec *Execution) delete(ctx context.Context, rset *recordsets.RecordSet) error {
+	recordSetID, err := exec.lookupRecordSetID(ctx, rset)
 	if err != nil {
 		return err
 	}
 	exec.handler.config.RateLimiter.Accept()
-	err = exec.handler.client.DeleteRecordSet(exec.zone.Id().ID, recordSetID)
+	err = exec.handler.client.DeleteRecordSet(ctx, exec.zone.Id().ID, recordSetID)
 	return err
 }
diff --git a/pkg/controller/provider/openstack/handler.go b/pkg/controller/provider/openstack/handler.go
index 94977145..325d1d0d 100644
--- a/pkg/controller/provider/openstack/handler.go
+++ b/pkg/controller/provider/openstack/handler.go
@@ -10,9 +10,9 @@ import (
 	"strings"
 
 	"github.com/gardener/controller-manager-library/pkg/logger"
-	"github.com/gophercloud/gophercloud/openstack/dns/v2/recordsets"
-	"github.com/gophercloud/gophercloud/openstack/dns/v2/zones"
-	"github.com/gophercloud/utils/openstack/clientconfig"
+	"github.com/gophercloud/gophercloud/v2/openstack/dns/v2/recordsets"
+	"github.com/gophercloud/gophercloud/v2/openstack/dns/v2/zones"
+	"github.com/gophercloud/utils/v2/openstack/clientconfig"
 
 	"github.com/gardener/external-dns-management/pkg/dns"
 	"github.com/gardener/external-dns-management/pkg/dns/provider"
@@ -37,7 +37,7 @@ func NewHandler(config *provider.DNSHandlerConfig) (provider.DNSHandler, error)
 		return nil, err
 	}
 
-	serviceClient, err := createDesignateServiceClient(config.Logger, authConfig)
+	serviceClient, err := createDesignateServiceClient(config.Context, config.Logger, authConfig)
 	if err != nil {
 		return nil, err
 	}
@@ -155,7 +155,7 @@ func (h *Handler) getZones(_ provider.ZoneCache) (provider.DNSHostedZones, error
 	}
 
 	h.config.RateLimiter.Accept()
-	if err := h.client.ForEachZone(zoneHandler); err != nil {
+	if err := h.client.ForEachZone(h.ctx, zoneHandler); err != nil {
 		return nil, fmt.Errorf("listing DNS zones failed. Details: %s", err.Error())
 	}
 
@@ -187,7 +187,7 @@ func (h *Handler) getZoneState(zone provider.DNSHostedZone, _ provider.ZoneCache
 	}
 
 	h.config.RateLimiter.Accept()
-	if err := h.client.ForEachRecordSet(zone.Id().ID, recordSetHandler); err != nil {
+	if err := h.client.ForEachRecordSet(h.ctx, zone.Id().ID, recordSetHandler); err != nil {
 		return nil, fmt.Errorf("listing DNS zones failed for %s. Details: %s", zone.Id(), err.Error())
 	}
 
@@ -218,7 +218,7 @@ func (h *Handler) executeRequests(logger logger.LogContext, zone provider.DNSHos
 			continue
 		}
 
-		err := exec.apply(r.Action, rset)
+		err := exec.apply(h.ctx, r.Action, rset)
 		if err != nil {
 			failed++
 			logger.Infof("Apply failed with %s", err.Error())
diff --git a/renovate.json5 b/renovate.json5
index c3c14385..5dbc2fe4 100644
--- a/renovate.json5
+++ b/renovate.json5
@@ -91,7 +91,6 @@
     "github.com/mattn/go-colorable",
     "github.com/mattn/go-isatty",
     "github.com/mitchellh/copystructure",
-    "github.com/mitchellh/go-homedir",
     "github.com/mitchellh/reflectwalk",
     "github.com/moby/spdystream",
     "github.com/modern-go/concurrent",


Test patch:
diff --git a/pkg/controller/provider/openstack/handler_test.go b/pkg/controller/provider/openstack/handler_test.go
index 31e3333b..c8578078 100644
--- a/pkg/controller/provider/openstack/handler_test.go
+++ b/pkg/controller/provider/openstack/handler_test.go
@@ -5,6 +5,7 @@
 package openstack
 
 import (
+	"context"
 	"fmt"
 	"sort"
 	"strings"
@@ -12,8 +13,8 @@ import (
 	"time"
 
 	"github.com/gardener/controller-manager-library/pkg/logger"
-	"github.com/gophercloud/gophercloud/openstack/dns/v2/recordsets"
-	"github.com/gophercloud/gophercloud/openstack/dns/v2/zones"
+	"github.com/gophercloud/gophercloud/v2/openstack/dns/v2/recordsets"
+	"github.com/gophercloud/gophercloud/v2/openstack/dns/v2/zones"
 	. "github.com/onsi/gomega"
 
 	"github.com/gardener/external-dns-management/pkg/dns"
@@ -67,7 +68,7 @@ var _ designateClientInterface = &designateMockClient{}
 
 var mockMetrics provider.Metrics = &provider.NullMetrics{}
 
-func (c *designateMockClient) ForEachZone(handler func(zone *zones.Zone) error) error {
+func (c *designateMockClient) ForEachZone(_ context.Context, handler func(zone *zones.Zone) error) error {
 	for _, tz := range c.tzmap {
 		if err := handler(tz.zone); err != nil {
 			return err
@@ -76,11 +77,11 @@ func (c *designateMockClient) ForEachZone(handler func(zone *zones.Zone) error)
 	return nil
 }
 
-func (c *designateMockClient) ForEachRecordSet(zoneID string, handler func(recordSet *recordsets.RecordSet) error) error {
-	return c.ForEachRecordSetFilterByTypeAndName(zoneID, "", "", handler)
+func (c *designateMockClient) ForEachRecordSet(ctx context.Context, zoneID string, handler func(recordSet *recordsets.RecordSet) error) error {
+	return c.ForEachRecordSetFilterByTypeAndName(ctx, zoneID, "", "", handler)
 }
 
-func (c *designateMockClient) ForEachRecordSetFilterByTypeAndName(zoneID string, rrtype string, name string, handler func(recordSet *recordsets.RecordSet) error) error {
+func (c *designateMockClient) ForEachRecordSetFilterByTypeAndName(_ context.Context, zoneID string, rrtype string, name string, handler func(recordSet *recordsets.RecordSet) error) error {
 	tz := c.tzmap[zoneID]
 	if tz == nil {
 		return nil
@@ -101,13 +102,13 @@ func (c *designateMockClient) ForEachRecordSetFilterByTypeAndName(zoneID string,
 	return nil
 }
 
-func (c *designateMockClient) CreateRecordSet(zoneID string, opts recordsets.CreateOpts) (string, error) {
+func (c *designateMockClient) CreateRecordSet(_ context.Context, zoneID string, opts recordsets.CreateOpts) (string, error) {
 	tz := c.tzmap[zoneID]
 	if tz == nil {
-		return "", fmt.Errorf("Zone %s not found", zoneID)
+		return "", fmt.Errorf("zone %s not found", zoneID)
 	}
 	if !strings.HasSuffix(opts.Name, tz.zone.Name) {
-		return "", fmt.Errorf("Zone %s (%s): Invalid domain name: %s", zoneID, tz.zone.Name, opts.Name)
+		return "", fmt.Errorf("zone %s (%s): Invalid domain name: %s", zoneID, tz.zone.Name, opts.Name)
 	}
 	rssub, ok := tz.rsmap[opts.Name]
 	if !ok {
@@ -115,7 +116,7 @@ func (c *designateMockClient) CreateRecordSet(zoneID string, opts recordsets.Cre
 		tz.rsmap[opts.Name] = rssub
 	}
 	if _, ok := rssub[opts.Type]; ok {
-		return "", fmt.Errorf("Domain %s: duplicate recordsets %s", opts.Name, opts.Type)
+		return "", fmt.Errorf("domain %s: duplicate recordsets %s", opts.Name, opts.Type)
 	}
 	rs := recordsets.RecordSet{
 		ID:      tz.buildNextId(),
@@ -132,16 +133,16 @@ func (c *designateMockClient) CreateRecordSet(zoneID string, opts recordsets.Cre
 func (c *designateMockClient) getRecordSet(zoneID, recordSetID string) (*testzone, *recordsets.RecordSet, error) {
 	tz := c.tzmap[zoneID]
 	if tz == nil {
-		return nil, nil, fmt.Errorf("Zone %s not found", zoneID)
+		return nil, nil, fmt.Errorf("zone %s not found", zoneID)
 	}
 	rs, ok := tz.id2rs[recordSetID]
 	if !ok {
-		return nil, nil, fmt.Errorf("RecordSet not found: zone=%s, id=%s", zoneID, recordSetID)
+		return nil, nil, fmt.Errorf("recordSet not found: zone=%s, id=%s", zoneID, recordSetID)
 	}
 	return tz, rs, nil
 }
 
-func (c *designateMockClient) UpdateRecordSet(zoneID, recordSetID string, opts recordsets.UpdateOpts) error {
+func (c *designateMockClient) UpdateRecordSet(_ context.Context, zoneID, recordSetID string, opts recordsets.UpdateOpts) error {
 	_, rs, err := c.getRecordSet(zoneID, recordSetID)
 	if err != nil {
 		return err
@@ -151,7 +152,7 @@ func (c *designateMockClient) UpdateRecordSet(zoneID, recordSetID string, opts r
 	return nil
 }
 
-func (c *designateMockClient) DeleteRecordSet(zoneID, recordSetID string) error {
+func (c *designateMockClient) DeleteRecordSet(_ context.Context, zoneID, recordSetID string) error {
 	tz, rs, err := c.getRecordSet(zoneID, recordSetID)
 	if err != nil {
 		return err
@@ -234,7 +235,7 @@ func TestGetZones(t *testing.T) {
 func getDNSHostedZone(h *Handler, zoneID string) (provider.DNSHostedZone, error) {
 	tz, ok := h.client.(*designateMockClient).tzmap[zoneID]
 	if !ok {
-		return nil, fmt.Errorf("Zone %s not found", zoneID)
+		return nil, fmt.Errorf("zone %s not found", zoneID)
 	}
 	return tz, nil
 }
@@ -259,6 +260,7 @@ func TestGetZoneStateAndExecuteRequests(t *testing.T) {
 	dnssets := zoneState.GetDNSSets()
 	Ω(dnssets).Should(BeEmpty(), "dnssets should be empty initially")
 
+	ctx := context.Background()
 	initial := []recordsets.CreateOpts{
 		{
 			Name:    "sub1.z1.test.",
@@ -280,7 +282,7 @@ func TestGetZoneStateAndExecuteRequests(t *testing.T) {
 		},
 	}
 	for _, opts := range initial {
-		_, err = h.client.CreateRecordSet("z1", opts)
+		_, err = h.client.CreateRecordSet(ctx, "z1", opts)
 		Ω(err).ShouldNot(HaveOccurred(), fmt.Sprintf("CreateRecordSet failed for %s %s", opts.Name, opts.Type))
 	}