mirror of
				https://github.com/nsnail/Ocelot.git
				synced 2025-11-04 15:50:49 +08:00 
			
		
		
		
	feat:fix kube config
This commit is contained in:
		@@ -1,10 +1,13 @@
 | 
				
			|||||||
FROM microsoft/dotnet:2.2-aspnetcore-runtime AS base
 | 
					FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
 | 
				
			||||||
WORKDIR /app
 | 
					WORKDIR /app
 | 
				
			||||||
EXPOSE 80
 | 
					EXPOSE 80
 | 
				
			||||||
 | 
					
 | 
				
			||||||
FROM microsoft/dotnet:2.2-sdk AS build
 | 
					FROM microsoft/dotnet:2.1-sdk AS build
 | 
				
			||||||
WORKDIR /src
 | 
					WORKDIR /src
 | 
				
			||||||
COPY ["ApiGateway/ApiGateway.csproj", "ApiGateway/"]
 | 
					COPY ["ApiGateway/ApiGateway.csproj", "ApiGateway/"]
 | 
				
			||||||
 | 
					COPY ["../../src/Ocelot.Provider.Polly/Ocelot.Provider.Polly.csproj", "../../src/Ocelot.Provider.Polly/"]
 | 
				
			||||||
 | 
					COPY ["../../src/Ocelot/Ocelot.csproj", "../../src/Ocelot/"]
 | 
				
			||||||
 | 
					COPY ["../../src/Ocelot.Provider.Kubernetes/Ocelot.Provider.Kubernetes.csproj", "../../src/Ocelot.Provider.Kubernetes/"]
 | 
				
			||||||
RUN dotnet restore "ApiGateway/ApiGateway.csproj"
 | 
					RUN dotnet restore "ApiGateway/ApiGateway.csproj"
 | 
				
			||||||
COPY . .
 | 
					COPY . .
 | 
				
			||||||
WORKDIR "/src/ApiGateway"
 | 
					WORKDIR "/src/ApiGateway"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,7 +1,7 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  "ReRoutes": [
 | 
					  "ReRoutes": [
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      "DownstreamPathTemplate": "/api/Category",
 | 
					      "DownstreamPathTemplate": "/api/values",
 | 
				
			||||||
      "DownstreamScheme": "http",
 | 
					      "DownstreamScheme": "http",
 | 
				
			||||||
      "UpstreamPathTemplate": "/Category",
 | 
					      "UpstreamPathTemplate": "/Category",
 | 
				
			||||||
      "ServiceName": "DownstreamService",
 | 
					      "ServiceName": "DownstreamService",
 | 
				
			||||||
@@ -21,7 +21,7 @@
 | 
				
			|||||||
      "Host": "localhost",
 | 
					      "Host": "localhost",
 | 
				
			||||||
      "Port": 8001,
 | 
					      "Port": 8001,
 | 
				
			||||||
      "Namesapce": "dev",
 | 
					      "Namesapce": "dev",
 | 
				
			||||||
      "Type": "k8s"
 | 
					      "Type": "kube"
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										22
									
								
								samples/OelotKube/Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								samples/OelotKube/Dockerfile
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
				
			|||||||
 | 
					FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
 | 
				
			||||||
 | 
					WORKDIR /app
 | 
				
			||||||
 | 
					EXPOSE 80
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FROM microsoft/dotnet:2.1-sdk AS build
 | 
				
			||||||
 | 
					WORKDIR /src
 | 
				
			||||||
 | 
					COPY ["ApiGateway/ApiGateway.csproj", "ApiGateway/"]
 | 
				
			||||||
 | 
					COPY ["../../src/Ocelot.Provider.Polly/Ocelot.Provider.Polly.csproj", "../../src/Ocelot.Provider.Polly/"]
 | 
				
			||||||
 | 
					COPY ["../../src/Ocelot/Ocelot.csproj", "../../src/Ocelot/"]
 | 
				
			||||||
 | 
					COPY ["../../src/Ocelot.Provider.Kubernetes/Ocelot.Provider.Kubernetes.csproj", "../../src/Ocelot.Provider.Kubernetes/"]
 | 
				
			||||||
 | 
					RUN dotnet restore "ApiGateway/ApiGateway.csproj"
 | 
				
			||||||
 | 
					COPY . .
 | 
				
			||||||
 | 
					WORKDIR "/src/ApiGateway"
 | 
				
			||||||
 | 
					RUN dotnet build "ApiGateway.csproj" -c Release -o /app
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FROM build AS publish
 | 
				
			||||||
 | 
					RUN dotnet publish "ApiGateway.csproj" -c Release -o /app
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FROM base AS final
 | 
				
			||||||
 | 
					WORKDIR /app
 | 
				
			||||||
 | 
					COPY --from=publish /app .
 | 
				
			||||||
 | 
					ENTRYPOINT ["dotnet", "ApiGateway.dll"]
 | 
				
			||||||
@@ -1,8 +1,8 @@
 | 
				
			|||||||
FROM microsoft/dotnet:2.2-aspnetcore-runtime AS base
 | 
					FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
 | 
				
			||||||
WORKDIR /app
 | 
					WORKDIR /app
 | 
				
			||||||
EXPOSE 80
 | 
					EXPOSE 80
 | 
				
			||||||
 | 
					
 | 
				
			||||||
FROM microsoft/dotnet:2.2-sdk AS build
 | 
					FROM microsoft/dotnet:2.1-sdk AS build
 | 
				
			||||||
WORKDIR /src
 | 
					WORKDIR /src
 | 
				
			||||||
COPY ["DownstreamService/DownstreamService.csproj", "DownstreamService/"]
 | 
					COPY ["DownstreamService/DownstreamService.csproj", "DownstreamService/"]
 | 
				
			||||||
RUN dotnet restore "DownstreamService/DownstreamService.csproj"
 | 
					RUN dotnet restore "DownstreamService/DownstreamService.csproj"
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										15
									
								
								samples/OelotKube/DownstreamService/Dockerfile.develop
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								samples/OelotKube/DownstreamService/Dockerfile.develop
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
				
			|||||||
 | 
					FROM microsoft/dotnet:2.1-sdk
 | 
				
			||||||
 | 
					ARG BUILD_CONFIGURATION=Debug
 | 
				
			||||||
 | 
					ENV ASPNETCORE_ENVIRONMENT=Development
 | 
				
			||||||
 | 
					ENV DOTNET_USE_POLLING_FILE_WATCHER=true
 | 
				
			||||||
 | 
					EXPOSE 80
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					WORKDIR /src
 | 
				
			||||||
 | 
					COPY ["DownstreamService/DownstreamService.csproj", "DownstreamService/"]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RUN dotnet restore "DownstreamService/DownstreamService.csproj"
 | 
				
			||||||
 | 
					COPY . .
 | 
				
			||||||
 | 
					WORKDIR "/src/DownstreamService"
 | 
				
			||||||
 | 
					RUN dotnet build --no-restore "DownstreamService.csproj" -c $BUILD_CONFIGURATION
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ENTRYPOINT ["dotnet", "run", "--no-build", "--no-launch-profile", "-c", "$BUILD_CONFIGURATION", "--"]
 | 
				
			||||||
@@ -11,7 +11,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ocelot.Provider.Kubernetes"
 | 
				
			|||||||
EndProject
 | 
					EndProject
 | 
				
			||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ocelot.Provider.Polly", "..\..\src\Ocelot.Provider.Polly\Ocelot.Provider.Polly.csproj", "{323055CB-BF62-4A31-A619-A4444B633CDB}"
 | 
					Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ocelot.Provider.Polly", "..\..\src\Ocelot.Provider.Polly\Ocelot.Provider.Polly.csproj", "{323055CB-BF62-4A31-A619-A4444B633CDB}"
 | 
				
			||||||
EndProject
 | 
					EndProject
 | 
				
			||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DownstreamService", "DownstreamService\DownstreamService.csproj", "{86FFAE3C-648F-4CDE-A260-37C8EBFBF4F2}"
 | 
					Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DownstreamService", "DownstreamService\DownstreamService.csproj", "{86FFAE3C-648F-4CDE-A260-37C8EBFBF4F2}"
 | 
				
			||||||
EndProject
 | 
					EndProject
 | 
				
			||||||
Global
 | 
					Global
 | 
				
			||||||
	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 | 
						GlobalSection(SolutionConfigurationPlatforms) = preSolution
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -10,14 +10,14 @@ using System.Threading.Tasks;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
namespace Ocelot.Provider.Kubernetes
 | 
					namespace Ocelot.Provider.Kubernetes
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    public class KubeProvider : IServiceDiscoveryProvider
 | 
					    public class Kube : IServiceDiscoveryProvider
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        private KubeRegistryConfiguration kubeRegistryConfiguration;
 | 
					        private KubeRegistryConfiguration kubeRegistryConfiguration;
 | 
				
			||||||
        private IOcelotLoggerFactory factory;
 | 
					        private IOcelotLoggerFactory factory;
 | 
				
			||||||
        private IKubeApiClient kubeApi;
 | 
					        private IKubeApiClient kubeApi;
 | 
				
			||||||
        private IKubeApiClientFactory kubeClientFactory;
 | 
					        private IKubeApiClientFactory kubeClientFactory;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public KubeProvider(KubeRegistryConfiguration kubeRegistryConfiguration, IOcelotLoggerFactory factory, IKubeApiClientFactory kubeClientFactory)
 | 
					        public Kube(KubeRegistryConfiguration kubeRegistryConfiguration, IOcelotLoggerFactory factory, IKubeApiClientFactory kubeClientFactory)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            this.kubeRegistryConfiguration = kubeRegistryConfiguration;
 | 
					            this.kubeRegistryConfiguration = kubeRegistryConfiguration;
 | 
				
			||||||
            this.factory = factory;
 | 
					            this.factory = factory;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,7 +11,7 @@ namespace Ocelot.Provider.Kubernetes
 | 
				
			|||||||
        public static ServiceDiscoveryFinderDelegate Get = (provider, config, name) =>
 | 
					        public static ServiceDiscoveryFinderDelegate Get = (provider, config, name) =>
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            var factory = provider.GetService<IOcelotLoggerFactory>();
 | 
					            var factory = provider.GetService<IOcelotLoggerFactory>();
 | 
				
			||||||
            if (config.Type?.ToLower() == "k8s")
 | 
					            if (config.Type?.ToLower() == "kube")
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                return GetkubeProvider(provider, config, name, factory);
 | 
					                return GetkubeProvider(provider, config, name, factory);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
@@ -31,7 +31,7 @@ namespace Ocelot.Provider.Kubernetes
 | 
				
			|||||||
                AllowInsecure = true // Don't validate server certificate
 | 
					                AllowInsecure = true // Don't validate server certificate
 | 
				
			||||||
            };
 | 
					            };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            var k8sServiceDiscoveryProvider = new KubeProvider(k8sRegistryConfiguration, factory, kubeClientFactory);
 | 
					            var k8sServiceDiscoveryProvider = new Kube(k8sRegistryConfiguration, factory, kubeClientFactory);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            return k8sServiceDiscoveryProvider;
 | 
					            return k8sServiceDiscoveryProvider;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user