Skip to content

Commit

Permalink
rpadmin: add https test for UpdateAPIUrlsFromKubernetesDNS
Browse files Browse the repository at this point in the history
  • Loading branch information
bojand committed Dec 5, 2024
1 parent 5939ed3 commit 40c912a
Showing 1 changed file with 50 additions and 44 deletions.
94 changes: 50 additions & 44 deletions rpadmin/admin_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -276,49 +276,55 @@ func TestAdminAddressesFromK8SDNS(t *testing.T) {
}

func TestUpdateAPIUrlsFromKubernetesDNS(t *testing.T) {
adminAPIURL := "http://redpanda-api.cluster.local:19644"

adminAPIHostURL, err := url.Parse(adminAPIURL)
require.NoError(t, err)

srv, err := mockdns.NewServer(map[string]mockdns.Zone{
"_admin._tcp." + adminAPIHostURL.Hostname() + ".": {
SRV: []net.SRV{
{
Target: "rp-id123-0.rp-id123.redpanda.svc.cluster.local.",
Port: 9644,
Weight: 33,
},
{
Target: "rp-id123-1.rp-id123.redpanda.svc.cluster.local.",
Port: 9644,
Weight: 33,
},
{
Target: "rp-id123-2.rp-id123.redpanda.svc.cluster.local.",
Port: 9644,
Weight: 33,
schemes := []string{"http", "https"}

for _, scheme := range schemes {
t.Run(scheme, func(t *testing.T) {
adminAPIURL := scheme + "://" + "redpanda-api.cluster.local:19644"

adminAPIHostURL, err := url.Parse(adminAPIURL)
require.NoError(t, err)

srv, err := mockdns.NewServer(map[string]mockdns.Zone{
"_admin._tcp." + adminAPIHostURL.Hostname() + ".": {
SRV: []net.SRV{
{
Target: "rp-id123-0.rp-id123.redpanda.svc.cluster.local.",
Port: 9644,
Weight: 33,
},
{
Target: "rp-id123-1.rp-id123.redpanda.svc.cluster.local.",
Port: 9644,
Weight: 33,
},
{
Target: "rp-id123-2.rp-id123.redpanda.svc.cluster.local.",
Port: 9644,
Weight: 33,
},
},
},
},
},
}, false)
require.NoError(t, err)

defer srv.Close()

srv.PatchNet(net.DefaultResolver)
defer mockdns.UnpatchNet(net.DefaultResolver)

cl, err := NewClient([]string{adminAPIURL}, nil, nil, false)
require.NoError(t, err)
require.NotNil(t, cl)
assert.Len(t, cl.urls, 1)

err = cl.UpdateAPIUrlsFromKubernetesDNS()
require.NoError(t, err)
require.NotNil(t, cl)
assert.Len(t, cl.urls, 3)
assert.Equal(t, "http://rp-id123-0.rp-id123.redpanda.svc.cluster.local.:9644", cl.urls[0])
assert.Equal(t, "http://rp-id123-1.rp-id123.redpanda.svc.cluster.local.:9644", cl.urls[1])
assert.Equal(t, "http://rp-id123-2.rp-id123.redpanda.svc.cluster.local.:9644", cl.urls[2])
}, false)
require.NoError(t, err)

defer srv.Close()

srv.PatchNet(net.DefaultResolver)
defer mockdns.UnpatchNet(net.DefaultResolver)

cl, err := NewClient([]string{adminAPIURL}, nil, nil, false)
require.NoError(t, err)
require.NotNil(t, cl)
assert.Len(t, cl.urls, 1)

err = cl.UpdateAPIUrlsFromKubernetesDNS()
require.NoError(t, err)
require.NotNil(t, cl)
assert.Len(t, cl.urls, 3)
assert.Equal(t, scheme+"://"+"rp-id123-0.rp-id123.redpanda.svc.cluster.local.:9644", cl.urls[0])
assert.Equal(t, scheme+"://"+"rp-id123-1.rp-id123.redpanda.svc.cluster.local.:9644", cl.urls[1])
assert.Equal(t, scheme+"://"+"rp-id123-2.rp-id123.redpanda.svc.cluster.local.:9644", cl.urls[2])
})
}
}

0 comments on commit 40c912a

Please sign in to comment.