Ejemplo n.º 1
0
        public IKubeApiClient Get(KubeRegistryConfiguration config)
        {
            var option = new KubeClientOptions
            {
                ApiEndPoint = config.ApiEndPoint
            };

            if (!string.IsNullOrEmpty(config?.AccessToken))
            {
                option.AccessToken   = config.AccessToken;
                option.AuthStrategy  = config.AuthStrategy;
                option.AllowInsecure = config.AllowInsecure;
            }
            return(KubeApiClient.Create(option));
        }
Ejemplo n.º 2
0
        private static ServiceDiscovery.Providers.IServiceDiscoveryProvider GetkubeProvider(IServiceProvider provider, Configuration.ServiceProviderConfiguration config, DownstreamReRoute reRoute, IOcelotLoggerFactory factory)
        {
            var kubeClient = provider.GetService <IKubeApiClient>();
            var k8sRegistryConfiguration = new KubeRegistryConfiguration()
            {
                KeyOfServiceInK8s = reRoute.ServiceName,
                KubeNamespace     = string.IsNullOrEmpty(reRoute.ServiceNamespace) ? config.Namespace : reRoute.ServiceNamespace
            };

            var k8sServiceDiscoveryProvider = new Kube(k8sRegistryConfiguration, factory, kubeClient);

            if (config.Type?.ToLower() == "pollkube")
            {
                return(new PollKube(config.PollingInterval, factory, k8sServiceDiscoveryProvider));
            }
            return(k8sServiceDiscoveryProvider);
        }
Ejemplo n.º 3
0
        private static ServiceDiscovery.Providers.IServiceDiscoveryProvider GetkubeProvider(IServiceProvider provider, Configuration.ServiceProviderConfiguration config, string name, IOcelotLoggerFactory factory)
        {
            var kubeClientFactory        = provider.GetService <IKubeApiClientFactory>();
            var k8sRegistryConfiguration = new KubeRegistryConfiguration()
            {
                ApiEndPoint       = new Uri($"https://{config.Host}:{config.Port}"),
                KeyOfServiceInK8s = name,
                KubeNamespace     = config.Namespace,
                AuthStrategy      = KubeAuthStrategy.BearerToken,
                AccessToken       = config.Token,
                AllowInsecure     = true // Don't validate server certificate
            };

            var k8sServiceDiscoveryProvider = new Kube(k8sRegistryConfiguration, factory, kubeClientFactory);

            if (config.Type?.ToLower() == "pollkube")
            {
                return(new PollKube(config.PollingInterval, factory, k8sServiceDiscoveryProvider));
            }
            return(k8sServiceDiscoveryProvider);
        }
Ejemplo n.º 4
0
 public KubernetesServiceDiscoveryProvider(KubeRegistryConfiguration kubeRegistryConfiguration, IOcelotLoggerFactory factory, IKubeApiClient kubeApi)
 {
     _kubeRegistryConfiguration = kubeRegistryConfiguration;
     _logger  = factory.CreateLogger <KubernetesServiceDiscoveryProvider>();
     _kubeApi = kubeApi;
 }
Ejemplo n.º 5
0
 public Kube(KubeRegistryConfiguration kubeRegistryConfiguration, IOcelotLoggerFactory factory, IKubeApiClientFactory kubeClientFactory)
 {
     this.kubeRegistryConfiguration = kubeRegistryConfiguration;
     this.logger  = factory.CreateLogger <Kube>();
     this.kubeApi = kubeClientFactory.Get(kubeRegistryConfiguration);
 }