Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 0 additions & 8 deletions cmd/webhook/main_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,8 @@ import (
"testing"

acmetest "github.com/cert-manager/cert-manager/test/acme"
"github.com/go-logr/logr"
"github.com/ionos-cloud/cert-manager-webhook-ionos-cloud/internal/resolver"
"go.uber.org/zap"
controller_runtime_log "sigs.k8s.io/controller-runtime/pkg/log"
)

var zone = os.Getenv("TEST_ZONE_NAME")
Expand All @@ -24,9 +22,6 @@ func TestBasicConformance(t *testing.T) {
t.Fatal(err.Error())
}

// this is to remove a log message warning in controller runtime
controller_runtime_log.SetLogger(logr.New(controller_runtime_log.NullLogSink{}))

solver := resolver.NewResolver("basic-present-record", resolver.DefaultK8FactoryFactory,
resolver.DefaultDNSAPIFactory, logger)
fixture := acmetest.NewFixture(solver,
Expand All @@ -47,9 +42,6 @@ func TestExtendedConformance(t *testing.T) {
t.Fatal(err.Error())
}

// this is to remove a log message warning in controller runtime
controller_runtime_log.SetLogger(logr.New(controller_runtime_log.NullLogSink{}))

solver := resolver.NewResolver("extended-supports-multiple-same-domain", resolver.DefaultK8FactoryFactory,
resolver.DefaultDNSAPIFactory, logger)
fixture := acmetest.NewFixture(solver,
Expand Down
7 changes: 3 additions & 4 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,16 @@ go 1.25.1
// please place any replace statements here at the top for visibility and add a
// comment to it as to when it can be removed

replace sigs.k8s.io/structured-merge-diff/v4 => sigs.k8s.io/structured-merge-diff/v4 v4.5.0

require (
github.com/cert-manager/cert-manager v1.18.1
github.com/go-logr/logr v1.4.3
github.com/ionos-cloud/sdk-go-dns v1.4.0
github.com/stretchr/testify v1.10.0
go.uber.org/zap v1.27.0
k8s.io/api v0.33.1
k8s.io/apiextensions-apiserver v0.32.2
k8s.io/apimachinery v0.33.1
k8s.io/client-go v0.33.1
k8s.io/utils v0.0.0-20250321185631-1f6e0b77f77e
sigs.k8s.io/controller-runtime v0.20.4
)

require (
Expand Down Expand Up @@ -211,6 +207,7 @@ require (
github.com/go-git/go-billy/v5 v5.6.1 // indirect
github.com/go-git/go-git/v5 v5.13.1 // indirect
github.com/go-jose/go-jose/v4 v4.1.0 // indirect
github.com/go-logr/logr v1.4.3 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/go-logr/zapr v1.3.0 // indirect
github.com/go-openapi/analysis v0.23.0 // indirect
Expand Down Expand Up @@ -542,10 +539,12 @@ require (
k8s.io/klog/v2 v2.130.1 // indirect
k8s.io/kms v0.32.2 // indirect
k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff // indirect
k8s.io/utils v0.0.0-20250321185631-1f6e0b77f77e // indirect
lukechampine.com/blake3 v1.2.1 // indirect
mvdan.cc/gofumpt v0.8.0 // indirect
mvdan.cc/unparam v0.0.0-20250301125049-0df0534333a4 // indirect
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.1 // indirect
sigs.k8s.io/controller-runtime v0.20.4 // indirect
sigs.k8s.io/gateway-api v1.1.0 // indirect
sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect
sigs.k8s.io/kind v0.27.0 // indirect
Expand Down
5 changes: 3 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -1710,10 +1710,11 @@ sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 h1:gBQPwqORJ8d8/YNZWEjoZs7np
sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg=
sigs.k8s.io/kind v0.27.0 h1:PQ3f0iAWNIj66LYkZ1ivhEg/+Zb6UPMbO+qVei/INZA=
sigs.k8s.io/kind v0.27.0/go.mod h1:RZVFmy6qcwlSWwp6xeIUv7kXCPF3i8MXsEXxW/J+gJY=
sigs.k8s.io/randfill v0.0.0-20250304075658-069ef1bbf016/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY=
sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU=
sigs.k8s.io/randfill v1.0.0/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY=
sigs.k8s.io/structured-merge-diff/v4 v4.5.0 h1:nbCitCK2hfnhyiKo6uf2HxUPTCodY6Qaf85SbDIaMBk=
sigs.k8s.io/structured-merge-diff/v4 v4.5.0/go.mod h1:N8f93tFZh9U6vpxwRArLiikrE5/2tiu1w1AGfACIGE4=
sigs.k8s.io/structured-merge-diff/v4 v4.6.0 h1:IUA9nvMmnKWcj5jl84xn+T5MnlZKThmUW1TdblaLVAc=
sigs.k8s.io/structured-merge-diff/v4 v4.6.0/go.mod h1:dDy58f92j70zLsuZVuUX5Wp9vtxXpaZnkPGWeqDfCps=
sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E=
sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY=
software.sslmate.com/src/go-pkcs12 v0.5.0 h1:EC6R394xgENTpZ4RltKydeDUjtlM5drOYIG9c6TVj2M=
Expand Down
100 changes: 51 additions & 49 deletions internal/resolver/resolver_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,10 @@ import (
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/rest"
"k8s.io/utils/ptr"
)

var (
typeTxtRecord = ptr.To(dnsclient.RecordType("TXT"))
emptyConfig = &apiextensionsv1.JSON{Raw: []byte("{}")}
typeTxtRecord = toPTR(dnsclient.RecordType("TXT"))
errK8Client = errors.New("k8 client error")
)

Expand Down Expand Up @@ -111,11 +109,11 @@ func (s *ResolverTestSuite) TestPresent() {
name: "zone already exists",
givenZones: []dnsclient.ZoneRead{
{
Id: ptr.To("test-zone-id"),
Id: toPTR("test-zone-id"),
Properties: &dnsclient.Zone{
ZoneName: ptr.To("test.com"),
ZoneName: toPTR("test.com"),
},
Type: ptr.To("NATIVE"),
Type: toPTR("NATIVE"),
},
},
givenRecords: []dnsclient.RecordRead{},
Expand All @@ -132,20 +130,20 @@ func (s *ResolverTestSuite) TestPresent() {
name: "record with the same name and key already exists",
givenZones: []dnsclient.ZoneRead{
{
Id: ptr.To("test-zone-id"),
Id: toPTR("test-zone-id"),
Properties: &dnsclient.Zone{
ZoneName: ptr.To("test.com"),
ZoneName: toPTR("test.com"),
},
Type: ptr.To("NATIVE"),
Type: toPTR("NATIVE"),
},
},
givenRecords: []dnsclient.RecordRead{
{
Id: ptr.To("test-record-id"),
Id: toPTR("test-record-id"),
Properties: &dnsclient.Record{
Name: ptr.To("_acme-challenge"),
Name: toPTR("_acme-challenge"),
Type: typeTxtRecord,
Content: ptr.To("test-key"),
Content: toPTR("test-key"),
},
},
},
Expand All @@ -162,20 +160,20 @@ func (s *ResolverTestSuite) TestPresent() {
name: "record with the same name but different key already exists",
givenZones: []dnsclient.ZoneRead{
{
Id: ptr.To("test-zone-id"),
Id: toPTR("test-zone-id"),
Properties: &dnsclient.Zone{
ZoneName: ptr.To("test.com"),
ZoneName: toPTR("test.com"),
},
Type: ptr.To("NATIVE"),
Type: toPTR("NATIVE"),
},
},
givenRecords: []dnsclient.RecordRead{
{
Id: ptr.To("test-record-id"),
Id: toPTR("test-record-id"),
Properties: &dnsclient.Record{
Name: ptr.To("_acme-challenge"),
Name: toPTR("_acme-challenge"),
Type: typeTxtRecord,
Content: ptr.To("different-key"),
Content: toPTR("different-key"),
},
},
},
Expand Down Expand Up @@ -205,11 +203,11 @@ func (s *ResolverTestSuite) TestPresent() {
name: "error fetching records",
givenZones: []dnsclient.ZoneRead{
{
Id: ptr.To("test-zone-id"),
Id: toPTR("test-zone-id"),
Properties: &dnsclient.Zone{
ZoneName: ptr.To("test.com"),
ZoneName: toPTR("test.com"),
},
Type: ptr.To("NATIVE"),
Type: toPTR("NATIVE"),
},
},
givenRecords: []dnsclient.RecordRead{},
Expand All @@ -227,11 +225,11 @@ func (s *ResolverTestSuite) TestPresent() {
name: "error creating record",
givenZones: []dnsclient.ZoneRead{
{
Id: ptr.To("test-zone-id"),
Id: toPTR("test-zone-id"),
Properties: &dnsclient.Zone{
ZoneName: ptr.To("test.com"),
ZoneName: toPTR("test.com"),
},
Type: ptr.To("NATIVE"),
Type: toPTR("NATIVE"),
},
},
givenRecords: []dnsclient.RecordRead{},
Expand Down Expand Up @@ -270,7 +268,7 @@ func (s *ResolverTestSuite) TestPresent() {
if tc.thenRecordCreateKey != "" {
s.dnsAPIMock.EXPECT().CreateTXTRecord("test-zone-id", "_acme-challenge", tc.thenRecordCreateKey).
Return(dnsclient.RecordRead{
Id: ptr.To("test-record-id"),
Id: toPTR("test-record-id"),
}, tc.whenRecordCreateError)
}
}
Expand Down Expand Up @@ -346,11 +344,11 @@ func (s *ResolverTestSuite) TestCleanUp() {
name: "zone exists, but no record",
givenZones: []dnsclient.ZoneRead{
{
Id: ptr.To("test-zone-id"),
Id: toPTR("test-zone-id"),
Properties: &dnsclient.Zone{
ZoneName: ptr.To("test.com"),
ZoneName: toPTR("test.com"),
},
Type: ptr.To("NATIVE"),
Type: toPTR("NATIVE"),
},
},
givenRecords: []dnsclient.RecordRead{},
Expand All @@ -368,20 +366,20 @@ func (s *ResolverTestSuite) TestCleanUp() {
name: "zone and record with same name exists, but has a different key",
givenZones: []dnsclient.ZoneRead{
{
Id: ptr.To("test-zone-id"),
Id: toPTR("test-zone-id"),
Properties: &dnsclient.Zone{
ZoneName: ptr.To("test.com"),
ZoneName: toPTR("test.com"),
},
Type: ptr.To("NATIVE"),
Type: toPTR("NATIVE"),
},
},
givenRecords: []dnsclient.RecordRead{
{
Id: ptr.To("test-record-id"),
Id: toPTR("test-record-id"),
Properties: &dnsclient.Record{
Name: ptr.To("_acme-challenge"),
Name: toPTR("_acme-challenge"),
Type: typeTxtRecord,
Content: ptr.To("different-key"),
Content: toPTR("different-key"),
},
},
},
Expand Down Expand Up @@ -412,11 +410,11 @@ func (s *ResolverTestSuite) TestCleanUp() {
name: "record read error",
givenZones: []dnsclient.ZoneRead{
{
Id: ptr.To("test-zone-id"),
Id: toPTR("test-zone-id"),
Properties: &dnsclient.Zone{
ZoneName: ptr.To("test.com"),
ZoneName: toPTR("test.com"),
},
Type: ptr.To("NATIVE"),
Type: toPTR("NATIVE"),
},
},
givenRecords: []dnsclient.RecordRead{},
Expand All @@ -434,20 +432,20 @@ func (s *ResolverTestSuite) TestCleanUp() {
name: "record delete error",
givenZones: []dnsclient.ZoneRead{
{
Id: ptr.To("test-zone-id"),
Id: toPTR("test-zone-id"),
Properties: &dnsclient.Zone{
ZoneName: ptr.To("test.com"),
ZoneName: toPTR("test.com"),
},
Type: ptr.To("NATIVE"),
Type: toPTR("NATIVE"),
},
},
givenRecords: []dnsclient.RecordRead{
{
Id: ptr.To("test-record-id"),
Id: toPTR("test-record-id"),
Properties: &dnsclient.Record{
Name: ptr.To("_acme-challenge"),
Name: toPTR("_acme-challenge"),
Type: typeTxtRecord,
Content: ptr.To("test-key"),
Content: toPTR("test-key"),
},
},
},
Expand All @@ -466,20 +464,20 @@ func (s *ResolverTestSuite) TestCleanUp() {
name: "record with key exists",
givenZones: []dnsclient.ZoneRead{
{
Id: ptr.To("test-zone-id"),
Id: toPTR("test-zone-id"),
Properties: &dnsclient.Zone{
ZoneName: ptr.To("test.com"),
ZoneName: toPTR("test.com"),
},
Type: ptr.To("NATIVE"),
Type: toPTR("NATIVE"),
},
},
givenRecords: []dnsclient.RecordRead{
{
Id: ptr.To("test-record-id"),
Id: toPTR("test-record-id"),
Properties: &dnsclient.Record{
Name: ptr.To("_acme-challenge"),
Name: toPTR("_acme-challenge"),
Type: typeTxtRecord,
Content: ptr.To("test-key"),
Content: toPTR("test-key"),
},
},
},
Expand Down Expand Up @@ -555,3 +553,7 @@ func setUpK8ClientExpectations(k8Client *mocks.K8Client, err error, t *testing.T

k8Client.EXPECT().CoreV1().Return(coreV1Interface)
}

func toPTR[C any](c C) *C {
return &c
}