From 4a31ffbb0bcebcef86495ff2d57dfe0aed799bac Mon Sep 17 00:00:00 2001 From: Pc Date: Fri, 24 Feb 2023 23:31:05 +0330 Subject: [PATCH] refactor: Refactor kubernetes configs --- .../actions/docker-build-publish/action.yml | 4 +- deployments/k8s/booking.yml | 22 ++---- deployments/k8s/flight.yml | 39 ++-------- deployments/k8s/identity.yml | 13 ++-- deployments/k8s/ingress.yml | 76 ++++++++++++++----- deployments/k8s/passenger.yml | 10 +-- .../InfrastructureExtensions.cs | 2 - .../InfrastructureExtensions.cs | 20 +++-- 8 files changed, 92 insertions(+), 94 deletions(-) diff --git a/.github/actions/docker-build-publish/action.yml b/.github/actions/docker-build-publish/action.yml index 2d9f699..8631238 100644 --- a/.github/actions/docker-build-publish/action.yml +++ b/.github/actions/docker-build-publish/action.yml @@ -43,11 +43,11 @@ runs: if: ${{ github.ref == 'refs/heads/main' && success() }} shell: bash run: | - docker build -t ${{ inputs.registry-username }}/${{ inputs.image-name }}:v1.6.5 -f "${{ github.workspace }}/${{ inputs.dockerfile-path }}" . + docker build -t ${{ inputs.registry-username }}/${{ inputs.image-name }}:v1.6.6 -f "${{ github.workspace }}/${{ inputs.dockerfile-path }}" . - name: Publish Docker Image if: ${{ github.ref == 'refs/heads/main' && success() }} shell: bash run: | - docker push ${{ inputs.registry-username }}/${{ inputs.image-name }}:v1.6.5 + docker push ${{ inputs.registry-username }}/${{ inputs.image-name }}:v1.6.6 diff --git a/deployments/k8s/booking.yml b/deployments/k8s/booking.yml index 97e375f..e4c72d5 100644 --- a/deployments/k8s/booking.yml +++ b/deployments/k8s/booking.yml @@ -15,27 +15,15 @@ spec: app: booking spec: containers: - - image: meysamh66/booking-microservices-booking:v1.5.7 + - image: meysamh66/booking-microservices-booking:v1.6.5 name: booking ports: - containerPort: 80 env: - - name: "ASPNETCORE_ENVIRONMENT" - value: "docker" + - name: ASPNETCORE_ENVIRONMENT + value: docker - name: ASPNETCORE_URLS - value: "http://+" - # - name: "RabbitMqOptions__HostName" - # value: "localhost" - # - name: "RabbitMqOptions__ExchangeName" - # value: "booking" - # - name: "RabbitMqOptions__UserName" - # value: "guest" - # - name: "RabbitMqOptions__Password" - # value: "guest" - # - name: "RabbitMqOptions__Port" - # value: "5672" - - name: "EventStore__ConnectionString" - value: "esdb://eventstore:2113?tls=false" + value: http://+ volumeMounts: - name: appsettings-volume mountPath: /app/Settings @@ -47,7 +35,7 @@ spec: apiVersion: v1 kind: Service metadata: - name: booking-service + name: booking spec: selector: app: booking diff --git a/deployments/k8s/flight.yml b/deployments/k8s/flight.yml index d8c978b..249624f 100644 --- a/deployments/k8s/flight.yml +++ b/deployments/k8s/flight.yml @@ -15,39 +15,15 @@ spec: app: flight spec: containers: - - image: meysamh66/booking-microservices-flight:v1.6.3 + - image: meysamh66/booking-microservices-flight:v1.6.5 name: flight ports: - containerPort: 80 env: - - name: "ASPNETCORE_ENVIRONMENT" - value: "docker" + - name: ASPNETCORE_ENVIRONMENT + value: docker - name: ASPNETCORE_URLS - value: "http://+" - - name: "RabbitMqOptions__HostName" - value: "rabbitmq" - - name: "RabbitMqOptions__ExchangeName" - value: "flight" - - name: "RabbitMqOptions__UserName" - value: "guest" - - name: "RabbitMqOptions__Password" - value: "guest" - - name: "RabbitMqOptions__Port" - value: "5672" - - name: "MongoOptions__ConnectionString" - value: "mongodb://mongo:27017" - - name: "MongoOptions__DatabaseName" - value: "flight-db" - - name: "Jwt__Authority" - value: "http://127.0.0.1:7914" - - name: "Jwt__Audience" - value: "flight-api" - - name: "Jwt__RequireHttpsMetadata" - value: "false" - - name: "Jwt__MetadataAddress" - value: "flight/.well-known/openid-configuration" - # - name: "HealthOptions__Enabled" - # value: "true" + value: http://+ volumeMounts: - name: appsettings-volume mountPath: /app/Settings @@ -59,7 +35,7 @@ spec: apiVersion: v1 kind: Service metadata: - name: flight-service + name: flight spec: selector: app: flight @@ -67,6 +43,5 @@ spec: - name: http protocol: TCP port: 80 - # targetPort: 80 - nodePort: 30444 - type: NodePort + targetPort: 80 + type: ClusterIP diff --git a/deployments/k8s/identity.yml b/deployments/k8s/identity.yml index f36f0d4..674432e 100644 --- a/deployments/k8s/identity.yml +++ b/deployments/k8s/identity.yml @@ -15,15 +15,15 @@ spec: app: identity spec: containers: - - image: meysamh66/booking-microservices-identity:v1.6.3 + - image: meysamh66/booking-microservices-identity:v1.6.5 name: identity ports: - containerPort: 80 env: - - name: "ASPNETCORE_ENVIRONMENT" - value: "docker" + - name: ASPNETCORE_ENVIRONMENT + value: docker - name: ASPNETCORE_URLS - value: http://+:80 + value: http://+ volumeMounts: - name: appsettings-volume mountPath: /app/Settings @@ -35,7 +35,7 @@ spec: apiVersion: v1 kind: Service metadata: - name: identity-service + name: identity spec: selector: app: identity @@ -44,5 +44,4 @@ spec: protocol: TCP port: 80 targetPort: 80 - nodePort: 30443 - type: NodePort + type: ClusterIP diff --git a/deployments/k8s/ingress.yml b/deployments/k8s/ingress.yml index 782e975..010a13b 100644 --- a/deployments/k8s/ingress.yml +++ b/deployments/k8s/ingress.yml @@ -3,7 +3,7 @@ kind: Ingress metadata: name: booking-microservies annotations: - nginx.ingress.kubernetes.io/rewrite-target: / + nginx.ingress.kubernetes.io/rewrite-target: /$1 nginx.ingress.kubernetes.io/proxy-buffer-size: "128k" nginx.ingress.kubernetes.io/proxy-buffers: "4 256k" nginx.ingress.kubernetes.io/proxy-busy-buffers-size: "256k" @@ -13,24 +13,33 @@ metadata: nginx.ingress.kubernetes.io/large-client-header-buffers: "8 64k" spec: ingressClassName: nginx - # tls: - # - hosts: - # - myidentityserver.com - # secretName: identity-tls - # - hosts: - # - booking-microservices.com - # secretName: booking-tls + tls: + - hosts: + - myidentityserver.com + secretName: identity-tls + - hosts: + - booking-microservices.com + secretName: booking-tls rules: - # - host: myidentityserver.com - # http: - # paths: - # - path: / - # pathType: Prefix - # backend: - # service: - # name: identity-service - # port: - # number: 80 + - host: myidentityserver.com + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: identity + port: + number: 80 + - path: /(.+) + pathType: Prefix + backend: + service: + name: identity + port: + number: 80 + + - host: booking-microservices.com http: paths: @@ -38,20 +47,45 @@ spec: pathType: Prefix backend: service: - name: flight-service + name: flight port: number: 80 + - path: /flight/(.+) + pathType: Prefix + backend: + service: + name: flight + port: + number: 80 + + - path: /passenger pathType: Prefix backend: service: - name: passenger-service + name: passenger + port: + number: 80 + - path: /passenger/(.+) + pathType: Prefix + backend: + service: + name: passenger port: number: 80 + + - path: /booking pathType: Prefix backend: service: - name: booking-service + name: booking + port: + number: 80 + - path: /booking/(.+) + pathType: Prefix + backend: + service: + name: booking port: number: 80 \ No newline at end of file diff --git a/deployments/k8s/passenger.yml b/deployments/k8s/passenger.yml index 37e78da..f291f82 100644 --- a/deployments/k8s/passenger.yml +++ b/deployments/k8s/passenger.yml @@ -15,15 +15,15 @@ spec: app: passenger spec: containers: - - image: meysamh66/booking-microservices-passenger:v1.5.7 + - image: meysamh66/booking-microservices-passenger:v1.6.5 name: passenger ports: - containerPort: 80 env: - - name: "ASPNETCORE_ENVIRONMENT" - value: "docker" + - name: ASPNETCORE_ENVIRONMENT + value: docker - name: ASPNETCORE_URLS - value: "http://+" + value: http://+ volumeMounts: - name: appsettings-volume mountPath: /app/Settings @@ -35,7 +35,7 @@ spec: apiVersion: v1 kind: Service metadata: - name: passenger-service + name: passenger spec: selector: app: passenger diff --git a/src/Services/Flight/src/Flight/Extensions/Infrastructure/InfrastructureExtensions.cs b/src/Services/Flight/src/Flight/Extensions/Infrastructure/InfrastructureExtensions.cs index 56be92f..588476b 100644 --- a/src/Services/Flight/src/Flight/Extensions/Infrastructure/InfrastructureExtensions.cs +++ b/src/Services/Flight/src/Flight/Extensions/Infrastructure/InfrastructureExtensions.cs @@ -89,8 +89,6 @@ public static class InfrastructureExtensions builder.Services.AddEasyCaching(options => { options.UseInMemory(configuration, "mem"); }); - Microsoft.IdentityModel.Logging.IdentityModelEventSource.ShowPII = true; - return builder; } diff --git a/src/Services/Identity/src/Identity/Extensions/Infrastructure/InfrastructureExtensions.cs b/src/Services/Identity/src/Identity/Extensions/Infrastructure/InfrastructureExtensions.cs index ae75056..1e6fa90 100644 --- a/src/Services/Identity/src/Identity/Extensions/Infrastructure/InfrastructureExtensions.cs +++ b/src/Services/Identity/src/Identity/Extensions/Infrastructure/InfrastructureExtensions.cs @@ -79,7 +79,11 @@ public static class InfrastructureExtensions builder.AddCustomIdentityServer(); - Microsoft.IdentityModel.Logging.IdentityModelEventSource.ShowPII = true; + builder.Services.Configure(options => + { + options.ForwardedHeaders = + ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto; + }); return builder; } @@ -90,14 +94,13 @@ public static class InfrastructureExtensions var env = app.Environment; var appOptions = app.GetOptions(nameof(AppOptions)); - var forwardHeaderOptions = new ForwardedHeadersOptions - { - ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto - }; - forwardHeaderOptions.KnownNetworks.Clear(); - forwardHeaderOptions.KnownProxies.Clear(); + app.UseForwardedHeaders(); - app.UseForwardedHeaders(forwardHeaderOptions); + app.Use((context, next) => + { + context.Request.Scheme = "https"; + return next(); + }); app.UseProblemDetails(); app.UseSerilogRequestLogging(options => @@ -112,6 +115,7 @@ public static class InfrastructureExtensions app.UseIdentityServer(); app.MapMetrics(); + app.MapGet("/", x => x.Response.WriteAsync(appOptions.Name)); if (env.IsDevelopment())