github.com/grafana/pyroscope@v1.18.0/pkg/metastore/discovery/kuberesolver_test.go (about)

     1  package discovery
     2  
     3  import (
     4  	"fmt"
     5  	"testing"
     6  	"time"
     7  
     8  	"github.com/hashicorp/raft"
     9  	"github.com/stretchr/testify/require"
    10  
    11  	"github.com/grafana/pyroscope/pkg/metastore/discovery/kuberesolver"
    12  	"github.com/grafana/pyroscope/pkg/test"
    13  )
    14  
    15  func TestDebugLocalhost(t *testing.T) {
    16  	t.Skip()
    17  	client := kuberesolver.NewInsecureK8sClient("http://localhost:8080")
    18  	target := "kubernetes:///pyroscope-metastore-headless.pyroscope-test:9095"
    19  
    20  	discovery, err := NewKubeResolverDiscovery(test.NewTestingLogger(t), target, client)
    21  	require.NoError(t, err)
    22  	discovery.Subscribe(UpdateFunc(func(servers []Server) {
    23  		fmt.Printf("servers: %+v\n", servers)
    24  	}))
    25  
    26  	defer discovery.Close()
    27  	time.Sleep(555 * time.Second)
    28  
    29  }
    30  
    31  func TestConvert(t *testing.T) {
    32  	e := kuberesolver.Endpoints{
    33  		Kind:       "Endpoints",
    34  		ApiVersion: "v1",
    35  		Metadata: kuberesolver.Metadata{
    36  			Name:            "pyroscope-metastore-headless",
    37  			Namespace:       "pyroscope-test",
    38  			ResourceVersion: "1013720",
    39  			Labels:          map[string]string{},
    40  		},
    41  		Subsets: []kuberesolver.Subset{
    42  			{
    43  				Addresses: []kuberesolver.Address{
    44  					{
    45  						IP: "10.244.1.5",
    46  						TargetRef: &kuberesolver.ObjectReference{
    47  							Kind:      "Pod",
    48  							Name:      "pyroscope-metastore-0",
    49  							Namespace: "pyroscope-test",
    50  						},
    51  					},
    52  					{
    53  						IP: "10.244.2.7",
    54  						TargetRef: &kuberesolver.ObjectReference{
    55  							Kind:      "Pod",
    56  							Name:      "pyroscope-metastore-1",
    57  							Namespace: "pyroscope-test",
    58  						},
    59  					},
    60  					{
    61  						IP: "10.244.3.7",
    62  						TargetRef: &kuberesolver.ObjectReference{
    63  							Kind:      "Pod",
    64  							Name:      "pyroscope-metastore-2",
    65  							Namespace: "pyroscope-test",
    66  						},
    67  					},
    68  				},
    69  				Ports: []kuberesolver.Port{
    70  					{
    71  						Name: "http2",
    72  						Port: 4040,
    73  					},
    74  					{
    75  						Name: "raft",
    76  						Port: 9099,
    77  					},
    78  					{
    79  						Name: "grpc",
    80  						Port: 9095,
    81  					},
    82  				},
    83  			},
    84  		},
    85  	}
    86  
    87  	servers := convertEndpoints(e, targetInfo{
    88  		namespace: "pyroscope-test",
    89  		service:   "pyroscope-metastore-headless",
    90  		port:      "9095",
    91  	})
    92  	expected := []Server{
    93  		{
    94  			ResolvedAddress: "10.244.1.5:9095",
    95  			Raft: raft.Server{
    96  				ID:      raft.ServerID("pyroscope-metastore-0.pyroscope-metastore-headless.pyroscope-test.svc.cluster.local.:9095"),
    97  				Address: raft.ServerAddress("pyroscope-metastore-0.pyroscope-metastore-headless.pyroscope-test.svc.cluster.local.:9095"),
    98  			},
    99  		},
   100  		{
   101  			ResolvedAddress: "10.244.2.7:9095",
   102  			Raft: raft.Server{
   103  				ID:      raft.ServerID("pyroscope-metastore-1.pyroscope-metastore-headless.pyroscope-test.svc.cluster.local.:9095"),
   104  				Address: raft.ServerAddress("pyroscope-metastore-1.pyroscope-metastore-headless.pyroscope-test.svc.cluster.local.:9095"),
   105  			},
   106  		},
   107  		{
   108  			ResolvedAddress: "10.244.3.7:9095",
   109  			Raft: raft.Server{
   110  				ID:      raft.ServerID("pyroscope-metastore-2.pyroscope-metastore-headless.pyroscope-test.svc.cluster.local.:9095"),
   111  				Address: raft.ServerAddress("pyroscope-metastore-2.pyroscope-metastore-headless.pyroscope-test.svc.cluster.local.:9095"),
   112  			},
   113  		},
   114  	}
   115  	require.Equal(t, expected, servers)
   116  
   117  }