add k8s deployments

This commit is contained in:
meysamhadeli 2023-02-14 15:42:58 +03:30
parent e2da97877c
commit eaab6ea9fb
10 changed files with 787 additions and 10 deletions

View File

@ -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.5.8 -f "${{ github.workspace }}/${{ inputs.dockerfile-path }}" .
docker build -t ${{ inputs.registry-username }}/${{ inputs.image-name }}:v1.5.9 -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.5.8
docker push ${{ inputs.registry-username }}/${{ inputs.image-name }}:v1.5.9

View File

@ -0,0 +1,46 @@
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.5.2
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-service
spec:
selector:
app: booking
ports:
- name: http
port: 80
targetPort: 80
type: ClusterIP

View File

@ -0,0 +1,9 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: appsettings
data:
appsettings.json: |-
{
.Files.Get "settings/appsettings.docker.json"
}

View File

@ -0,0 +1,46 @@
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.5.8
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-service
spec:
selector:
app: flight
ports:
- name: http
port: 80
targetPort: 80
type: ClusterIP

View File

@ -0,0 +1,46 @@
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.5.8
name: identity
ports:
- containerPort: 80
env:
- name: "ASPNETCORE_ENVIRONMENT"
value: "docker"
- name: ASPNETCORE_URLS
value: http://+:80
volumeMounts:
- name: appsettings-volume
mountPath: /app/Settings
volumes:
- name: appsettings-volume
configMap:
name: appsettings
---
apiVersion: v1
kind: Service
metadata:
name: identity-service
spec:
selector:
app: identity
ports:
- name: http
port: 80
targetPort: 80
type: ClusterIP

View File

@ -0,0 +1,536 @@
#######################################################
# Network
#######################################################
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
creationTimestamp: null
name: booking
spec:
ingress:
- from:
- podSelector:
matchLabels:
io.kompose.network/booking: "true"
podSelector:
matchLabels:
io.kompose.network/booking: "true"
---
#######################################################
# ElasticSearch
#######################################################
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.cmd: C:\ProgramData\chocolatey\lib\kubernetes-kompose\tools\kompose.exe -f infrastracture.yaml convert
kompose.version: 1.28.0 (c4137012e)
creationTimestamp: null
labels:
io.kompose.service: elasticsearch
name: elasticsearch
spec:
replicas: 1
selector:
matchLabels:
io.kompose.service: elasticsearch
strategy:
type: Recreate
template:
metadata:
annotations:
kompose.cmd: C:\ProgramData\chocolatey\lib\kubernetes-kompose\tools\kompose.exe -f infrastracture.yaml convert
kompose.version: 1.28.0 (c4137012e)
creationTimestamp: null
labels:
io.kompose.network/booking: "true"
io.kompose.service: elasticsearch
spec:
containers:
- env:
- name: ES_JAVA_OPTS
value: -Xms512m -Xmx512m
- name: discovery.type
value: single-node
- name: xpack.monitoring.enabled
value: "true"
- name: xpack.watcher.enabled
value: "false"
image: elasticsearch:7.17.9
name: elasticsearch
ports:
- containerPort: 9200
resources: {}
volumeMounts:
- mountPath: /usr/share/elasticsearch/data
name: elasticsearch-data
restartPolicy: Always
volumes:
- name: elasticsearch-data
persistentVolumeClaim:
claimName: elasticsearch-data
status: {}
---
apiVersion: v1
kind: Service
metadata:
annotations:
kompose.cmd: C:\ProgramData\chocolatey\lib\kubernetes-kompose\tools\kompose.exe -f infrastracture.yaml convert
kompose.version: 1.28.0 (c4137012e)
creationTimestamp: null
labels:
io.kompose.service: elasticsearch
name: elasticsearch
spec:
ports:
- name: "9200"
port: 9200
targetPort: 9200
selector:
io.kompose.service: elasticsearch
status:
loadBalancer: {}
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
creationTimestamp: null
labels:
io.kompose.service: elasticsearch-data
name: elasticsearch-data
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
status: {}
---
#######################################################
# Kibana
#######################################################
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.cmd: C:\ProgramData\chocolatey\lib\kubernetes-kompose\tools\kompose.exe -f infrastracture.yaml convert
kompose.version: 1.28.0 (c4137012e)
creationTimestamp: null
labels:
io.kompose.service: kibana
name: kibana
spec:
replicas: 1
selector:
matchLabels:
io.kompose.service: kibana
strategy: {}
template:
metadata:
annotations:
kompose.cmd: C:\ProgramData\chocolatey\lib\kubernetes-kompose\tools\kompose.exe -f infrastracture.yaml convert
kompose.version: 1.28.0 (c4137012e)
creationTimestamp: null
labels:
io.kompose.network/booking: "true"
io.kompose.service: kibana
spec:
containers:
- env:
- name: ELASTICSEARCH_URL
value: http://localhost:9200
image: kibana:7.17.9
name: kibana
ports:
- containerPort: 5601
resources: {}
restartPolicy: Always
status: {}
---
apiVersion: v1
kind: Service
metadata:
annotations:
kompose.cmd: C:\ProgramData\chocolatey\lib\kubernetes-kompose\tools\kompose.exe -f infrastracture.yaml convert
kompose.version: 1.28.0 (c4137012e)
creationTimestamp: null
labels:
io.kompose.service: kibana
name: kibana
spec:
ports:
- name: "5601"
port: 5601
targetPort: 5601
selector:
io.kompose.service: kibana
status:
loadBalancer: {}
---
#######################################################
# Event Store
#######################################################
apiVersion: v1
kind: Pod
metadata:
annotations:
kompose.cmd: C:\ProgramData\chocolatey\lib\kubernetes-kompose\tools\kompose.exe -f infrastracture.yaml convert
kompose.version: 1.28.0 (c4137012e)
creationTimestamp: null
labels:
io.kompose.network/booking: "true"
io.kompose.service: eventstore
name: eventstore
spec:
containers:
- env:
- name: EVENTSTORE_CLUSTER_SIZE
value: "1"
- name: EVENTSTORE_ENABLE_ATOM_PUB_OVER_HTTP
value: "true"
- name: EVENTSTORE_ENABLE_EXTERNAL_TCP
value: "true"
- name: EVENTSTORE_EXT_HTTP_PORT
value: "2113"
- name: EVENTSTORE_EXT_TCP_PORT
value: "1113"
- name: EVENTSTORE_INSECURE
value: "true"
- name: EVENTSTORE_RUN_PROJECTIONS
value: All
- name: EVENTSTORE_START_STANDARD_PROJECTIONS
value: "true"
image: eventstore/eventstore:21.2.0-buster-slim
name: eventstore
ports:
- containerPort: 1113
- containerPort: 2113
resources: {}
restartPolicy: OnFailure
status: {}
---
apiVersion: v1
kind: Service
metadata:
annotations:
kompose.cmd: C:\ProgramData\chocolatey\lib\kubernetes-kompose\tools\kompose.exe -f infrastracture.yaml convert
kompose.version: 1.28.0 (c4137012e)
creationTimestamp: null
labels:
io.kompose.service: eventstore
name: eventstore
spec:
ports:
- name: "1113"
port: 1113
targetPort: 1113
- name: "2113"
port: 2113
targetPort: 2113
selector:
io.kompose.service: eventstore
status:
loadBalancer: {}
---
# #######################################################
# # Jaeger
# #######################################################
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.cmd: C:\ProgramData\chocolatey\lib\kubernetes-kompose\tools\kompose.exe -f infrastracture.yaml convert
kompose.version: 1.28.0 (c4137012e)
creationTimestamp: null
labels:
io.kompose.service: jaeger
name: jaeger
spec:
replicas: 1
selector:
matchLabels:
io.kompose.service: jaeger
strategy: {}
template:
metadata:
annotations:
kompose.cmd: C:\ProgramData\chocolatey\lib\kubernetes-kompose\tools\kompose.exe -f infrastracture.yaml convert
kompose.version: 1.28.0 (c4137012e)
creationTimestamp: null
labels:
io.kompose.network/booking: "true"
io.kompose.service: jaeger
spec:
containers:
- image: jaegertracing/all-in-one
name: jaeger
ports:
- containerPort: 5775
protocol: UDP
- containerPort: 5778
- containerPort: 6831
protocol: UDP
- containerPort: 6832
protocol: UDP
- containerPort: 9411
- containerPort: 14268
- containerPort: 16686
resources: {}
restartPolicy: Always
status: {}
---
apiVersion: v1
kind: Service
metadata:
annotations:
kompose.cmd: C:\ProgramData\chocolatey\lib\kubernetes-kompose\tools\kompose.exe -f infrastracture.yaml convert
kompose.version: 1.28.0 (c4137012e)
creationTimestamp: null
labels:
io.kompose.service: jaeger
name: jaeger
spec:
ports:
- name: "5775"
port: 5775
protocol: UDP
targetPort: 5775
- name: "5778"
port: 5778
targetPort: 5778
- name: "6831"
port: 6831
protocol: UDP
targetPort: 6831
- name: "6832"
port: 6832
protocol: UDP
targetPort: 6832
- name: "9411"
port: 9411
targetPort: 9411
- name: "14268"
port: 14268
targetPort: 14268
- name: "16686"
port: 16686
targetPort: 16686
selector:
io.kompose.service: jaeger
status:
loadBalancer: {}
---
# #######################################################
# # Mongo
# #######################################################
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.cmd: C:\ProgramData\chocolatey\lib\kubernetes-kompose\tools\kompose.exe -f infrastracture.yaml convert
kompose.version: 1.28.0 (c4137012e)
creationTimestamp: null
labels:
io.kompose.service: mongo
name: mongo
spec:
replicas: 1
selector:
matchLabels:
io.kompose.service: mongo
strategy: {}
template:
metadata:
annotations:
kompose.cmd: C:\ProgramData\chocolatey\lib\kubernetes-kompose\tools\kompose.exe -f infrastracture.yaml convert
kompose.version: 1.28.0 (c4137012e)
creationTimestamp: null
labels:
io.kompose.network/booking: "true"
io.kompose.service: mongo
spec:
containers:
- image: mongo:5
name: mongo
ports:
- containerPort: 27017
resources: {}
restartPolicy: Always
status: {}
---
apiVersion: v1
kind: Service
metadata:
annotations:
kompose.cmd: C:\ProgramData\chocolatey\lib\kubernetes-kompose\tools\kompose.exe -f infrastracture.yaml convert
kompose.version: 1.28.0 (c4137012e)
creationTimestamp: null
labels:
io.kompose.service: mongo
name: mongo
spec:
ports:
- name: "27017"
port: 27017
targetPort: 27017
selector:
io.kompose.service: mongo
status:
loadBalancer: {}
---
# #######################################################
# # Postgres
# #######################################################
apiVersion: v1
kind: Pod
metadata:
labels:
app: postgres
name: postgres
spec:
containers:
- env:
- name: POSTGRES_PASSWORD
value: postgres
- name: POSTGRES_USER
value: postgres
image: postgres:latest
name: postgres
ports:
- containerPort: 5432
restartPolicy: OnFailure
---
apiVersion: v1
kind: Service
metadata:
labels:
app: postgres
name: postgres
spec:
ports:
- name: "5432"
port: 5432
targetPort: 5432
selector:
app: postgres
---
# #######################################################
# # Rabbitmq
# #######################################################
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.cmd: C:\ProgramData\chocolatey\lib\kubernetes-kompose\tools\kompose.exe -f infrastracture.yaml convert
kompose.version: 1.28.0 (c4137012e)
creationTimestamp: null
labels:
io.kompose.service: rabbitmq
name: rabbitmq
spec:
replicas: 1
selector:
matchLabels:
io.kompose.service: rabbitmq
strategy: {}
template:
metadata:
annotations:
kompose.cmd: C:\ProgramData\chocolatey\lib\kubernetes-kompose\tools\kompose.exe -f infrastracture.yaml convert
kompose.version: 1.28.0 (c4137012e)
creationTimestamp: null
labels:
io.kompose.network/booking: "true"
io.kompose.service: rabbitmq
spec:
containers:
- image: rabbitmq:3-management
name: rabbitmq
ports:
- containerPort: 5672
- containerPort: 15672
resources: {}
restartPolicy: Always
status: {}
---
apiVersion: v1
kind: Service
metadata:
annotations:
kompose.cmd: C:\ProgramData\chocolatey\lib\kubernetes-kompose\tools\kompose.exe -f infrastracture.yaml convert
kompose.version: 1.28.0 (c4137012e)
creationTimestamp: null
labels:
io.kompose.service: rabbitmq
name: rabbitmq
spec:
ports:
- name: "5672"
port: 5672
targetPort: 5672
- name: "15672"
port: 15672
targetPort: 15672
selector:
io.kompose.service: rabbitmq
status:
loadBalancer: {}
---
# #######################################################
# # Redis
# #######################################################
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.cmd: C:\ProgramData\chocolatey\lib\kubernetes-kompose\tools\kompose.exe -f infrastracture.yaml convert
kompose.version: 1.28.0 (c4137012e)
creationTimestamp: null
labels:
io.kompose.service: redis
name: redis
spec:
replicas: 1
selector:
matchLabels:
io.kompose.service: redis
strategy: {}
template:
metadata:
annotations:
kompose.cmd: C:\ProgramData\chocolatey\lib\kubernetes-kompose\tools\kompose.exe -f infrastracture.yaml convert
kompose.version: 1.28.0 (c4137012e)
creationTimestamp: null
labels:
io.kompose.network/booking: "true"
io.kompose.service: redis
spec:
containers:
- image: redis
name: redis
ports:
- containerPort: 6379
resources: {}
restartPolicy: Always
status: {}
---
apiVersion: v1
kind: Service
metadata:
annotations:
kompose.cmd: C:\ProgramData\chocolatey\lib\kubernetes-kompose\tools\kompose.exe -f infrastracture.yaml convert
kompose.version: 1.28.0 (c4137012e)
creationTimestamp: null
labels:
io.kompose.service: redis
name: redis
spec:
ports:
- name: "6379"
port: 6379
targetPort: 6379
selector:
io.kompose.service: redis
status:
loadBalancer: {}

View File

@ -0,0 +1,56 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: booking-microservices
namespace: default
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
nginx.ingress.kubernetes.io/proxy-buffers: "4 256k"
nginx.ingress.kubernetes.io/proxy-busy-buffers-size: "256k"
nginx.ingress.kubernetes.io/client-header-buffer-size: "64k"
nginx.ingress.kubernetes.io/http2-max-field-size: "16k"
nginx.ingress.kubernetes.io/http2-max-header-size: "128k"
nginx.ingress.kubernetes.io/large-client-header-buffers: "8 64k"
spec:
ingressClassName: nginx
tls:
- hosts:
- myidentityserver.com
- booking-microservices.com
secretName: nginx-tls-secret
rules:
- host: booking-microservices.com
http:
paths:
- path: /flight
pathType: Exact
backend:
service:
name: flight-service
port:
name: http
- path: /passenger
pathType: Exact
backend:
service:
name: passenger-service
port:
name: http
- path: /booking
pathType: Exact
backend:
service:
name: booking-service
port:
name: http
- host: myidentityserver.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: identity-service
port:
name: http

View File

@ -0,0 +1,46 @@
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.5.2
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-service
spec:
selector:
app: passenger
ports:
- name: http
port: 80
targetPort: 80
type: ClusterIP

View File

@ -32,14 +32,6 @@
"Dsn": "",
"MinimumBreadcrumbLevel": "information",
"MinimumEventLevel":"error"
},
"Kestrel": {
"Certificates": {
"Default": {
"Path": "./localhost.pfx",
"Password": "000000"
}
}
}
},
"AllowedHosts": "*"