package com.amazonwebservices.blogs.containers.config; import java.io.IOException; import java.time.Duration; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import com.amazonwebservices.blogs.containers.kubernetes.ControllerRunner; import com.amazonwebservices.blogs.containers.kubernetes.IamUserGroupReconciler; import com.amazonwebservices.blogs.containers.kubernetes.SpringSharedInformerFactory; import com.amazonwebservices.blogs.containers.kubernetes.model.IamUserGroupCustomObject; import io.kubernetes.client.extended.controller.Controller; import io.kubernetes.client.informer.SharedInformer; import io.kubernetes.client.informer.SharedInformerFactory; import io.kubernetes.client.openapi.ApiClient; import io.kubernetes.client.openapi.models.V1Pod; import io.kubernetes.client.util.ClientBuilder; import io.kubernetes.client.util.CustomClientBuilder; @Configuration public class KubernetesConfig { @Bean public ApiClient apiClient() throws IOException { ApiClient apiClient = CustomClientBuilder.custom(); //ApiClient apiClient = ClientBuilder.cluster().build(); return apiClient.setHttpClient(apiClient.getHttpClient().newBuilder().readTimeout(Duration.ZERO).build()); } @Bean public SharedInformerFactory sharedInformerFactory(ApiClient apiClient) { return new SpringSharedInformerFactory(apiClient); } @Bean public IamUserGroupReconciler iamUserGroupReconciler(ApiClient apiClient, SharedInformer<IamUserGroupCustomObject> iamGroupInformer) { return new IamUserGroupReconciler(apiClient, iamGroupInformer); } @Bean public ControllerRunner controllerRunner ( SharedInformerFactory sharedInformerFactory, @Qualifier("iamUserGroupController") Controller iamUserGroupController) { return new ControllerRunner(sharedInformerFactory, iamUserGroupController); } }