2
0

remote_cluster_test.go 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package test
  2. import (
  3. _ "k8s.io/client-go/plugin/pkg/client/auth"
  4. )
  5. /*
  6. func TestClusterConvergence(t *testing.T) {
  7. rclient, err := getKubernetesClient()
  8. if err != nil {
  9. panic(err)
  10. }
  11. var LongTimeoutRoundTripper http.RoundTripper = &http.Transport{ // may be necessary for long prometheus queries. TODO: make this configurable
  12. Proxy: http.ProxyFromEnvironment,
  13. DialContext: (&net.Dialer{
  14. Timeout: 120 * time.Second,
  15. KeepAlive: 120 * time.Second,
  16. }).DialContext,
  17. TLSHandshakeTimeout: 10 * time.Second,
  18. }
  19. pc := prometheusClient.Config{
  20. Address: os.Getenv(PROMETHEUS_SERVER_ENDPOINT),
  21. RoundTripper: LongTimeoutRoundTripper,
  22. }
  23. promCli, err := prometheusClient.NewClient(pc)
  24. if err != nil {
  25. panic(err)
  26. }
  27. cm := costModel.NewCostModel(rclient)
  28. provider := &cloud.CustomProvider{
  29. Clientset: rclient,
  30. }
  31. loc, _ := time.LoadLocation("UTC")
  32. endTime := time.Now().In(loc)
  33. d, _ := time.ParseDuration("24h")
  34. startTime := endTime.Add(-1 * d)
  35. layout := "2006-01-02T15:04:05.000Z"
  36. startStr := startTime.Format(layout)
  37. endStr := endTime.Format(layout)
  38. log.Printf("Starting at %s \n", startStr)
  39. log.Printf("Ending at %s \n", endStr)
  40. provider.DownloadPricingData()
  41. data, err := cm.ComputeCostDataRange(promCli, rclient, provider, startStr, endStr, "1h", "", "", false)
  42. if err != nil {
  43. panic(err)
  44. }
  45. os.Setenv("SQL_ADDRESS", "ab5cfc235d64e11e9b8280265f54018f-778641917.us-east-2.elb.amazonaws.com")
  46. os.Setenv("REMOTE_WRITE_PASSWORD", "savemoney123")
  47. data2, err := cm.ComputeCostDataRange(promCli, rclient, provider, startStr, endStr, "1h", "", "", true)
  48. if err != nil {
  49. panic(err)
  50. }
  51. agg := costModel.AggregateCostData(data, "namespace", []string{""}, provider, nil)
  52. agg2 := costModel.AggregateCostData(data2, "namespace", []string{""}, provider, nil)
  53. assert.Equal(t, agg["kubecost"].TotalCost, agg2["kubecost"].TotalCost)
  54. }
  55. */