k8s.go 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. package client
  2. import (
  3. "context"
  4. "fmt"
  5. "github.com/porter-dev/porter/api/types"
  6. )
  7. // GetK8sNamespaces gets a namespaces list in a k8s cluster
  8. func (c *Client) GetK8sNamespaces(
  9. ctx context.Context,
  10. projectID uint,
  11. clusterID uint,
  12. ) (*types.ListNamespacesResponse, error) {
  13. resp := &types.ListNamespacesResponse{}
  14. err := c.getRequest(
  15. fmt.Sprintf(
  16. "/projects/%d/clusters/%d/namespaces",
  17. projectID, clusterID,
  18. ),
  19. nil,
  20. resp,
  21. )
  22. return resp, err
  23. }
  24. func (c *Client) GetKubeconfig(
  25. ctx context.Context,
  26. projectID uint,
  27. clusterID uint,
  28. ) (*types.GetTemporaryKubeconfigResponse, error) {
  29. resp := &types.GetTemporaryKubeconfigResponse{}
  30. err := c.getRequest(
  31. fmt.Sprintf(
  32. "/projects/%d/clusters/%d/kubeconfig",
  33. projectID, clusterID,
  34. ),
  35. nil,
  36. resp,
  37. )
  38. return resp, err
  39. }
  40. func (c *Client) GetRelease(
  41. ctx context.Context,
  42. projectID, clusterID uint,
  43. namespace, name string,
  44. ) (*types.GetReleaseResponse, error) {
  45. resp := &types.GetReleaseResponse{}
  46. err := c.getRequest(
  47. fmt.Sprintf(
  48. "/projects/%d/clusters/%d/namespaces/%s/releases/%s/0",
  49. projectID, clusterID,
  50. namespace, name,
  51. ),
  52. nil,
  53. resp,
  54. )
  55. return resp, err
  56. }
  57. // GetK8sAllPods gets all pods for a given release
  58. func (c *Client) GetK8sAllPods(
  59. ctx context.Context,
  60. projectID, clusterID uint,
  61. namespace, name string,
  62. ) (*types.GetReleaseAllPodsResponse, error) {
  63. resp := &types.GetReleaseAllPodsResponse{}
  64. err := c.getRequest(
  65. fmt.Sprintf(
  66. "/projects/%d/clusters/%d/namespaces/%s/releases/%s/0/pods/all",
  67. projectID, clusterID,
  68. namespace, name,
  69. ),
  70. nil,
  71. resp,
  72. )
  73. return resp, err
  74. }