diff --git a/deployments/k8s/booking.yml b/deployments/k8s/booking.yml deleted file mode 100644 index 6043e6d..0000000 --- a/deployments/k8s/booking.yml +++ /dev/null @@ -1,47 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: booking-deployment - labels: - app: booking -spec: - replicas: 1 - selector: - matchLabels: - app: booking - template: - metadata: - labels: - app: booking - spec: - containers: - - image: meysamh66/booking-microservices-booking:v1.6.7 - name: booking - ports: - - containerPort: 80 - env: - - name: ASPNETCORE_ENVIRONMENT - value: docker - - name: ASPNETCORE_URLS - value: http://+ - volumeMounts: - - name: appsettings-volume - mountPath: /app/Settings - volumes: - - name: appsettings-volume - configMap: - name: appsettings ---- -apiVersion: v1 -kind: Service -metadata: - name: booking -spec: - selector: - app: booking - ports: - - name: http - protocol: TCP - port: 80 - targetPort: 80 - type: ClusterIP \ No newline at end of file diff --git a/deployments/k8s/certs/certificate.yml b/deployments/k8s/certs/certificate.yml deleted file mode 100644 index 14d58ac..0000000 --- a/deployments/k8s/certs/certificate.yml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: cert-manager.io/v1 -kind: Certificate -metadata: - name: booking-microservices-cert - namespace: default -spec: - secretName: booking-tls-secret - issuerRef: - name: booking-microservices-issuer - kind: Issuer - dnsNames: - - booking-microservices.com \ No newline at end of file diff --git a/deployments/k8s/certs/issuer.yml b/deployments/k8s/certs/issuer.yml deleted file mode 100644 index 6c1ad2e..0000000 --- a/deployments/k8s/certs/issuer.yml +++ /dev/null @@ -1,8 +0,0 @@ -apiVersion: cert-manager.io/v1 -kind: Issuer -metadata: - name: booking-microservices-issuer - namespace: default -spec: - ca: - secretName: booking-tls \ No newline at end of file diff --git a/deployments/k8s/certs/tls.crt b/deployments/k8s/certs/tls.crt deleted file mode 100644 index 4f4aa26..0000000 --- a/deployments/k8s/certs/tls.crt +++ /dev/null @@ -1,30 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIFKTCCAxGgAwIBAgIUFa9lh176zt1+zRoMwLJhUb9aEGswDQYJKoZIhvcNAQEL -BQAwJDEiMCAGA1UEAwwZYm9va2luZy1taWNyb3NlcnZpY2VzLmNvbTAeFw0yMzAy -MjExMTQ3MTBaFw0yNDAyMjExMTQ3MTBaMCQxIjAgBgNVBAMMGWJvb2tpbmctbWlj -cm9zZXJ2aWNlcy5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDU -jgMoXxtavsMXUoHva0WUfRybJMUgGSPniweawyn5FigUTx6gv6VvOzqSmGZ185P4 -UIbWCud9WjECESJUJB4qZbRiDYIMAd2336ci5wDsnDFUznXtM9g5UFfKwOweOVcv -jsStYf6K9wd/1itLorHx5txEPnPdTdFGFj9YUOku2c5VYH2OKiI7jjCh00stZdz8 -t5i//Kv27PDt6DG7/un0ygTG1kmMUMPrpRBeHlQMYft7OqM3GHrDfiuH7c5ZF5c6 -aDgPykyw2R3gLbBjyHbja9VFJs+dMEbPMlkDKzIV+ggugVGwuQdoD5/Jvkzo3qXT -cZJwGE72OEFiJn/VwWOH0WjlXKjHBAjhSn9n63NFjhs3SGKtdioqHBOiZCxB666r -MHGZy15kDyzgDUSF5OI+K/mb3kwGD8S5uzemO6dWxWQwL7zNRpxMiH4b8D8CFBUu -rCICIku5hSD/LNvt+NOVtCRYTjSLOMdZactH70P1EwqrJGS2sJk8DDi2h5o2ChnI -W/kxMOyZr3bODABZLiaNwHYvEHBHHwgueXGHbiYUDh7s9sMfJQZrGZDnd7GHyI7H -emdsbB02svzDPrAE9LQf4WB/dqaNRlI2ftJr3HJ5a9gYBoJDKZu69R47G60j3mrk -xHuXGRCc8xAmOqI4UcektWoDZGZkLE1UwHxYPERxZwIDAQABo1MwUTAdBgNVHQ4E -FgQUGyqcZzScRYbmp3NfHFsY54rZQNIwHwYDVR0jBBgwFoAUGyqcZzScRYbmp3Nf -HFsY54rZQNIwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAbiOq -XPZ0qorffY9nXQkicdZB7fMqDf5zZ22lWBE4flDzd8ffO6NeH/Ft7U3YwpKstuzh -3nHVbR+T35bufUpLyPbm+J/gIG9SHy5NTk2en+7lxrobesNVn669S/TAmrwfplCy -VeptYT42Jl3/Sd64DwH4LHAUrPjsdUhyYyWaWntTgrqxAy+tUoPxjvrX14eWC6wH -c8t1ovMSfSs5eapswROQK2VAr+19p2pFYPTEL75epChxn2f28gVnlEVgmkAok4PR -IWk4jWdz/HSGnOPI5NCmmoeogRAcu3T9jxpOoFAGXYE1OEtGqWi1yJAEJ45OVTsY -kBOiFxl8/1eB2JdVXPCETUhVzS/wlfH8nowZszy58sQ5QwG9e1wnUw/0R73sS1EG -qcHkiBED0ygNCNwMOVXMnalDDniXKBJwqZ0Y5K+L9YXzOGiO+hBM1LETTqyuGw7I -U3SpqDwIVISh3D8MW77XQWfgPey5LMEkLuHt8jKyi5B06J9A7FmWXgsvijfrclaA -wdpCjBV7jccmzBIxYUwpKNPyccT92N7P86VQ3WcOCPjHbgP3m1tSRT6PogjDbn7M -wVhTyCo0cuq2QWb4qKX7sHPvCJbrKzIcV6dObfmsR530Ktq6ZSLMmT9G2dJqsOAm -l5yLSPrSa9N9tQM7CYR30x7vgi3GgoFTlkCXFWA= ------END CERTIFICATE----- diff --git a/deployments/k8s/certs/tls.key b/deployments/k8s/certs/tls.key deleted file mode 100644 index 58a0ddf..0000000 --- a/deployments/k8s/certs/tls.key +++ /dev/null @@ -1,52 +0,0 @@ ------BEGIN PRIVATE KEY----- -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 -5/NPN4u96Bq+QaAlKHJsn1/MWEdZM/hr ------END PRIVATE KEY----- diff --git a/deployments/k8s/certs/tls.txt b/deployments/k8s/certs/tls.txt deleted file mode 100644 index 6320e62..0000000 --- a/deployments/k8s/certs/tls.txt +++ /dev/null @@ -1,2 +0,0 @@ -openssl req -x509 -newkey rsa:4096 -sha256 -nodes -keyout tls.key -out tls.crt -subj "/CN=booking-microservices.com" -days 365 -kubectl create secret tls booking-tls --key tls.key --cert tls.crt diff --git a/deployments/k8s/configmap.yml b/deployments/k8s/configmap.yml deleted file mode 100644 index 06630c1..0000000 --- a/deployments/k8s/configmap.yml +++ /dev/null @@ -1,10 +0,0 @@ -apiVersion: v1 -kind: ConfigMap -metadata: - name: appsettings -data: - appsettings.json: |- - { - .Files.Get "settings/appsettings.docker.json" - } -#ref: https://www.mrjamiebowman.com/software-development/dotnet/kubernetes-configmaps-with-net-core/ \ No newline at end of file diff --git a/deployments/k8s/flight.yml b/deployments/k8s/flight.yml deleted file mode 100644 index c872a04..0000000 --- a/deployments/k8s/flight.yml +++ /dev/null @@ -1,47 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: flight-deployment - labels: - app: flight -spec: - replicas: 1 - selector: - matchLabels: - app: flight - template: - metadata: - labels: - app: flight - spec: - containers: - - image: meysamh66/booking-microservices-flight:v1.6.7 - name: flight - ports: - - containerPort: 80 - env: - - name: ASPNETCORE_ENVIRONMENT - value: docker - - name: ASPNETCORE_URLS - value: http://+ - volumeMounts: - - name: appsettings-volume - mountPath: /app/Settings - volumes: - - name: appsettings-volume - configMap: - name: appsettings ---- -apiVersion: v1 -kind: Service -metadata: - name: flight -spec: - selector: - app: flight - ports: - - name: http - protocol: TCP - port: 80 - targetPort: 80 - type: ClusterIP diff --git a/deployments/k8s/identity.yml b/deployments/k8s/identity.yml deleted file mode 100644 index 488fed8..0000000 --- a/deployments/k8s/identity.yml +++ /dev/null @@ -1,47 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: identity-deployment - labels: - app: identity -spec: - replicas: 1 - selector: - matchLabels: - app: identity - template: - metadata: - labels: - app: identity - spec: - containers: - - image: meysamh66/booking-microservices-identity:v1.6.7 - name: identity - ports: - - containerPort: 80 - env: - - name: ASPNETCORE_ENVIRONMENT - value: docker - - name: ASPNETCORE_URLS - value: http://+ - volumeMounts: - - name: appsettings-volume - mountPath: /app/Settings - volumes: - - name: appsettings-volume - configMap: - name: appsettings ---- -apiVersion: v1 -kind: Service -metadata: - name: identity -spec: - selector: - app: identity - ports: - - name: http - protocol: TCP - port: 80 - targetPort: 80 - type: ClusterIP diff --git a/deployments/k8s/passenger.yml b/deployments/k8s/passenger.yml deleted file mode 100644 index 6db1d05..0000000 --- a/deployments/k8s/passenger.yml +++ /dev/null @@ -1,47 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: passenger-deployment - labels: - app: passenger -spec: - replicas: 1 - selector: - matchLabels: - app: passenger - template: - metadata: - labels: - app: passenger - spec: - containers: - - image: meysamh66/booking-microservices-passenger:v1.6.7 - name: passenger - ports: - - containerPort: 80 - env: - - name: ASPNETCORE_ENVIRONMENT - value: docker - - name: ASPNETCORE_URLS - value: http://+ - volumeMounts: - - name: appsettings-volume - mountPath: /app/Settings - volumes: - - name: appsettings-volume - configMap: - name: appsettings ---- -apiVersion: v1 -kind: Service -metadata: - name: passenger -spec: - selector: - app: passenger - ports: - - name: http - protocol: TCP - port: 80 - targetPort: 80 - type: ClusterIP \ No newline at end of file diff --git a/deployments/k8s/infrastructure.yml b/deployments/kubernetes/booking-microservices.yml similarity index 73% rename from deployments/k8s/infrastructure.yml rename to deployments/kubernetes/booking-microservices.yml index 59310b7..864cc55 100644 --- a/deployments/k8s/infrastructure.yml +++ b/deployments/kubernetes/booking-microservices.yml @@ -534,3 +534,221 @@ spec: io.kompose.service: redis status: loadBalancer: {} +--- +# ####################################################### +# ConfigMap AppSettings +# ####################################################### +apiVersion: v1 +kind: ConfigMap +metadata: + name: appsettings +data: + appsettings.json: |- + { + .Files.Get "settings/appsettings.docker.json" + } +#ref: https://www.mrjamiebowman.com/software-development/dotnet/kubernetes-configmaps-with-net-core/ +--- +# ####################################################### +# Flight +# ####################################################### +apiVersion: apps/v1 +kind: Deployment +metadata: + name: flight-deployment + labels: + app: flight +spec: + replicas: 1 + selector: + matchLabels: + app: flight + template: + metadata: + labels: + app: flight + spec: + containers: + - image: meysamh66/booking-microservices-flight:v1.6.7 + name: flight + ports: + - containerPort: 80 + env: + - name: ASPNETCORE_ENVIRONMENT + value: docker + - name: ASPNETCORE_URLS + value: http://+ + volumeMounts: + - name: appsettings-volume + mountPath: /app/Settings + volumes: + - name: appsettings-volume + configMap: + name: appsettings +--- +apiVersion: v1 +kind: Service +metadata: + name: flight +spec: + selector: + app: flight + ports: + - name: http + protocol: TCP + port: 80 + targetPort: 80 + type: ClusterIP +--- +# ####################################################### +# Identity +# ####################################################### +apiVersion: apps/v1 +kind: Deployment +metadata: + name: identity-deployment + labels: + app: identity +spec: + replicas: 1 + selector: + matchLabels: + app: identity + template: + metadata: + labels: + app: identity + spec: + containers: + - image: meysamh66/booking-microservices-identity:v1.6.7 + name: identity + ports: + - containerPort: 80 + env: + - name: ASPNETCORE_ENVIRONMENT + value: docker + - name: ASPNETCORE_URLS + value: http://+ + volumeMounts: + - name: appsettings-volume + mountPath: /app/Settings + volumes: + - name: appsettings-volume + configMap: + name: appsettings +--- +apiVersion: v1 +kind: Service +metadata: + name: identity +spec: + selector: + app: identity + ports: + - name: http + protocol: TCP + port: 80 + targetPort: 80 + type: ClusterIP +--- +# ####################################################### +# Booking +# ####################################################### +apiVersion: apps/v1 +kind: Deployment +metadata: + name: booking-deployment + labels: + app: booking +spec: + replicas: 1 + selector: + matchLabels: + app: booking + template: + metadata: + labels: + app: booking + spec: + containers: + - image: meysamh66/booking-microservices-booking:v1.6.7 + name: booking + ports: + - containerPort: 80 + env: + - name: ASPNETCORE_ENVIRONMENT + value: docker + - name: ASPNETCORE_URLS + value: http://+ + volumeMounts: + - name: appsettings-volume + mountPath: /app/Settings + volumes: + - name: appsettings-volume + configMap: + name: appsettings +--- +apiVersion: v1 +kind: Service +metadata: + name: booking +spec: + selector: + app: booking + ports: + - name: http + protocol: TCP + port: 80 + targetPort: 80 + type: ClusterIP +--- +# ####################################################### +# Passenger +# ####################################################### +apiVersion: apps/v1 +kind: Deployment +metadata: + name: passenger-deployment + labels: + app: passenger +spec: + replicas: 1 + selector: + matchLabels: + app: passenger + template: + metadata: + labels: + app: passenger + spec: + containers: + - image: meysamh66/booking-microservices-passenger:v1.6.7 + name: passenger + ports: + - containerPort: 80 + env: + - name: ASPNETCORE_ENVIRONMENT + value: docker + - name: ASPNETCORE_URLS + value: http://+ + volumeMounts: + - name: appsettings-volume + mountPath: /app/Settings + volumes: + - name: appsettings-volume + configMap: + name: appsettings +--- +apiVersion: v1 +kind: Service +metadata: + name: passenger +spec: + selector: + app: passenger + ports: + - name: http + protocol: TCP + port: 80 + targetPort: 80 + type: ClusterIP diff --git a/deployments/k8s/certs/booking-secret.yml b/deployments/kubernetes/booking-secret.yml similarity index 100% rename from deployments/k8s/certs/booking-secret.yml rename to deployments/kubernetes/booking-secret.yml diff --git a/deployments/k8s/ingress.yml b/deployments/kubernetes/ingress.yml similarity index 92% rename from deployments/k8s/ingress.yml rename to deployments/kubernetes/ingress.yml index 670d9e4..ec76780 100644 --- a/deployments/k8s/ingress.yml +++ b/deployments/kubernetes/ingress.yml @@ -4,6 +4,7 @@ metadata: name: booking-microservies annotations: nginx.ingress.kubernetes.io/rewrite-target: /$1 + nginx.ingress.kubernetes.io/use-regex: "true" 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" @@ -28,7 +29,7 @@ spec: name: flight port: number: 80 - - path: /identity/(.+) + - path: /identity/(.*) pathType: Prefix backend: service: @@ -44,7 +45,7 @@ spec: name: flight port: number: 80 - - path: /flight/(.+) + - path: /flight/(.*) pathType: Prefix backend: service: @@ -60,7 +61,7 @@ spec: name: passenger port: number: 80 - - path: /passenger/(.+) + - path: /passenger/(.*) pathType: Prefix backend: service: @@ -76,7 +77,7 @@ spec: name: booking port: number: 80 - - path: /booking/(.+) + - path: /booking/(.*) pathType: Prefix backend: service: