K8sApiConfiguration.java 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. package cn.seecoder.paas.util;
  2. import io.kubernetes.client.Exec;
  3. import io.kubernetes.client.openapi.ApiClient;
  4. import io.kubernetes.client.openapi.apis.AppsV1Api;
  5. import io.kubernetes.client.openapi.apis.CoreV1Api;
  6. import io.kubernetes.client.openapi.apis.ExtensionsV1beta1Api;
  7. import io.kubernetes.client.openapi.models.V1Pod;
  8. import io.kubernetes.client.openapi.models.V1PodList;
  9. import io.kubernetes.client.util.Config;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.context.annotation.Bean;
  12. import org.springframework.context.annotation.Configuration;
  13. @Configuration
  14. public class K8sApiConfiguration {
  15. private final ApiClient apiClient;
  16. private final CoreV1Api coreV1Api;
  17. private final AppsV1Api appsV1Api;
  18. private final ExtensionsV1beta1Api extensionsV1beta1Api;
  19. private final Exec exec;
  20. /**
  21. * http读取的超时时间设置为7分钟
  22. */
  23. private final ApiClient watchApiClient;
  24. private final CoreV1Api watchCoreV1Api;
  25. private final AppsV1Api watchAppsV1Api;
  26. @Autowired
  27. public K8sApiConfiguration(ApplicationProperties applicationProperties) {
  28. ApplicationProperties.K8s k8s = applicationProperties.getK8s();
  29. this.apiClient = Config.fromToken(k8s.getApiServer(), k8s.getToken(), k8s.isValidateSSL());
  30. this.apiClient.setDebugging(k8s.isDebug());
  31. io.kubernetes.client.openapi.Configuration.setDefaultApiClient(this.apiClient);
  32. this.coreV1Api = new CoreV1Api();
  33. this.appsV1Api = new AppsV1Api();
  34. this.extensionsV1beta1Api = new ExtensionsV1beta1Api();
  35. this.exec = new Exec();
  36. this.watchApiClient = Config.fromToken(k8s.getApiServer(), k8s.getToken(), k8s.isValidateSSL());
  37. this.watchCoreV1Api = new CoreV1Api(watchApiClient);
  38. this.watchAppsV1Api = new AppsV1Api(watchApiClient);
  39. }
  40. @Bean
  41. public ApiClient apiClient() {
  42. return apiClient;
  43. }
  44. @Bean
  45. public CoreV1Api coreV1Api() {
  46. return coreV1Api;
  47. }
  48. @Bean
  49. public AppsV1Api appsV1Api() {
  50. return appsV1Api;
  51. }
  52. @Bean
  53. public ExtensionsV1beta1Api extensionsV1beta1Api() {
  54. return extensionsV1beta1Api;
  55. }
  56. @Bean
  57. public Exec exec() {
  58. return exec;
  59. }
  60. @Bean
  61. public ApiClient watchApiClient() {
  62. return watchApiClient;
  63. }
  64. @Bean
  65. public CoreV1Api watchCoreV1Api() {
  66. return watchCoreV1Api;
  67. }
  68. @Bean
  69. public AppsV1Api watchAppsV1Api() {
  70. return watchAppsV1Api;
  71. }
  72. }