Removed docker swarm config
Added K8S config With big refactor
This commit is contained in:
72
deploy/k8s/api-cache.yml
Normal file
72
deploy/k8s/api-cache.yml
Normal file
@@ -0,0 +1,72 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: api-cache
|
||||
namespace: egommerce
|
||||
labels:
|
||||
app: api-cache
|
||||
spec:
|
||||
type: NodePort
|
||||
selector:
|
||||
app: api-cache
|
||||
ports:
|
||||
- port: 6379
|
||||
nodePort: 31300
|
||||
# ---
|
||||
# apiVersion: v1
|
||||
# kind: Service
|
||||
# metadata:
|
||||
# name: api-cache-metrics
|
||||
# namespace: egommerce
|
||||
# labels:
|
||||
# app: api-cache
|
||||
# spec:
|
||||
# type: NodePort
|
||||
# selector:
|
||||
# app: api-cache
|
||||
# ports:
|
||||
# - port: 9121
|
||||
# nodePort: 31301
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: api-cache
|
||||
namespace: egommerce
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: api-cache
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: api-cache
|
||||
spec:
|
||||
containers:
|
||||
- name: api-cache
|
||||
image: git.ego.freeddns.org/egommerce/api-cache:dev
|
||||
imagePullPolicy: Always
|
||||
command: [
|
||||
"redis-server"
|
||||
]
|
||||
args: [
|
||||
"/etc/redis.conf"
|
||||
]
|
||||
env:
|
||||
- name: APP_NAME
|
||||
value: api-cache
|
||||
- name: REDIS_PASSWORD
|
||||
value: "12345678"
|
||||
resources:
|
||||
limits:
|
||||
cpu: "1"
|
||||
memory: 512M
|
||||
ports:
|
||||
- containerPort: 6379
|
||||
- name: api-cache-metrics
|
||||
image: oliver006/redis_exporter:latest
|
||||
args:
|
||||
- --redis.addr=redis://api-cache:6379
|
||||
ports:
|
||||
- containerPort: 9121
|
||||
66
deploy/k8s/api-eventbus.yml
Normal file
66
deploy/k8s/api-eventbus.yml
Normal file
@@ -0,0 +1,66 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: api-eventbus
|
||||
namespace: egommerce
|
||||
labels:
|
||||
app: api-eventbus
|
||||
spec:
|
||||
type: NodePort
|
||||
selector:
|
||||
app: api-eventbus
|
||||
ports:
|
||||
- name: api-eventbus-mngmnt
|
||||
protocol: TCP
|
||||
port: 15672
|
||||
nodePort: 31200
|
||||
# - name: api-eventbus-metrics
|
||||
# protocol: TCP
|
||||
# port: 15692
|
||||
# nodePort: 31201
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: api-eventbus
|
||||
namespace: egommerce
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: api-eventbus
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: api-eventbus
|
||||
spec:
|
||||
containers:
|
||||
- name: api-eventbus
|
||||
image: git.ego.freeddns.org/egommerce/api-eventbus:dev
|
||||
imagePullPolicy: Always
|
||||
command: [
|
||||
"rabbitmq-server"
|
||||
]
|
||||
env:
|
||||
- name: APP_NAME
|
||||
value: api-eventbus
|
||||
- name: RABBITMQ_ERLANG_COOKIE
|
||||
value: rabbitmq
|
||||
volumeMounts:
|
||||
- name: eventbus-data
|
||||
mountPath: /var/lib/rabbitmq
|
||||
- name: eventbus-logs
|
||||
mountPath: /var/log/rabbitmq
|
||||
resources:
|
||||
limits:
|
||||
cpu: "1"
|
||||
memory: 1G
|
||||
ports:
|
||||
- containerPort: 5672
|
||||
- containerPort: 15672
|
||||
- containerPort: 15692
|
||||
volumes:
|
||||
- name: eventbus-data
|
||||
emptyDir:
|
||||
- name: eventbus-logs
|
||||
emptyDir:
|
||||
130
deploy/k8s/api-gateway.yml
Normal file
130
deploy/k8s/api-gateway.yml
Normal file
@@ -0,0 +1,130 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: api-gateway
|
||||
namespace: egommerce
|
||||
spec:
|
||||
type: NodePort
|
||||
ports:
|
||||
- name: https
|
||||
port: 8443
|
||||
nodePort: 31800
|
||||
selector:
|
||||
app: api-gateway
|
||||
---
|
||||
kind: IngressClass
|
||||
apiVersion: networking.k8s.io/v1
|
||||
metadata:
|
||||
name: haproxy
|
||||
namespace: egommerce
|
||||
spec:
|
||||
controller: haproxy.org/ingress-controller/haproxy
|
||||
---
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: api-gateway
|
||||
namespace: egommerce
|
||||
annotations:
|
||||
haproxy.org/server-ssl: "true"
|
||||
haproxy.org/server-ca: "egommerce/ca-root"
|
||||
haproxy.org/path-rewrite: |
|
||||
/api/identity/(.*) /\1
|
||||
/api/catalog/(.*) /\1
|
||||
spec:
|
||||
ingressClassName: haproxy
|
||||
tls:
|
||||
- secretName: api-gateway-cert
|
||||
hosts:
|
||||
- "egommerce.io" # FIXME use domain name here eg. egommerce.io
|
||||
rules:
|
||||
- host: egommerce.io
|
||||
http:
|
||||
paths:
|
||||
- path: /api/identity
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: identity-svc
|
||||
port:
|
||||
number: 443
|
||||
# - path: /api/catalog
|
||||
# pathType: Prefix
|
||||
# backend:
|
||||
# service:
|
||||
# name: catalog-svc
|
||||
# port:
|
||||
# number: 443
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: api-gateway
|
||||
namespace: egommerce
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: api-gateway
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: api-gateway
|
||||
spec:
|
||||
restartPolicy: Always
|
||||
containers:
|
||||
- name: api-gateway
|
||||
image: git.ego.freeddns.org/egommerce/api-gateway:dev
|
||||
imagePullPolicy: Always
|
||||
resources:
|
||||
limits:
|
||||
cpu: 100m
|
||||
memory: 512Mi
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 256Mi
|
||||
ports:
|
||||
- containerPort: 8443
|
||||
args:
|
||||
- --configmap=egommerce/api-gateway
|
||||
- --publish-service=egommerce/api-gateway
|
||||
- --ingress.class=haproxy
|
||||
# - --http-bind-port=8080
|
||||
- --https-bind-port=8443
|
||||
env:
|
||||
- name: POD_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
apiVersion: v1
|
||||
fieldPath: metadata.name
|
||||
- name: POD_NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
apiVersion: v1
|
||||
fieldPath: metadata.namespace
|
||||
- name: POD_IP
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
apiVersion: v1
|
||||
fieldPath: status.podIP
|
||||
securityContext:
|
||||
capabilities:
|
||||
add:
|
||||
- NET_BIND_SERVICE
|
||||
drop:
|
||||
- ALL
|
||||
# runAsUser: 1000
|
||||
# runAsGroup: 1000
|
||||
# runAsNonRoot: true
|
||||
# allowPrivilegeEscalation: false
|
||||
# seccompProfile:
|
||||
# type: RuntimeDefault
|
||||
volumeMounts:
|
||||
- name: root-ca
|
||||
mountPath: /etc/certs/root-ca.pem
|
||||
readOnly: true
|
||||
volumes:
|
||||
- name: root-ca
|
||||
hostPath:
|
||||
path: /egommerce/stack/deploy/certs/ca-root/ca-root.pem
|
||||
type: File
|
||||
432
deploy/k8s/api-logger.yml
Normal file
432
deploy/k8s/api-logger.yml
Normal file
@@ -0,0 +1,432 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: api-logger-loki
|
||||
namespace: egommerce
|
||||
labels:
|
||||
app: api-logger-loki
|
||||
spec:
|
||||
type: NodePort
|
||||
selector:
|
||||
app: api-logger-loki
|
||||
ports:
|
||||
- protocol: TCP
|
||||
port: 3100
|
||||
nodePort: 31401
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: api-logger-loki
|
||||
namespace: egommerce
|
||||
labels:
|
||||
app: api-logger-loki
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: api-logger-loki
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: api-logger-loki
|
||||
spec:
|
||||
containers:
|
||||
- name: api-logger-loki
|
||||
image: git.ego.freeddns.org/egommerce/api-logger-loki:dev
|
||||
imagePullPolicy: Always
|
||||
args:
|
||||
- "-config.file=/etc/loki/loki.yaml"
|
||||
ports:
|
||||
- containerPort: 3100
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: api-logger-promtail-ac
|
||||
namespace: egommerce
|
||||
labels:
|
||||
app: api-logger-promtail-ac
|
||||
annotations: {}
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: DaemonSet
|
||||
metadata:
|
||||
name: api-logger-promtail
|
||||
namespace: egommerce
|
||||
labels:
|
||||
app: api-logger-promtail
|
||||
spec:
|
||||
revisionHistoryLimit: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: api-logger-promtail
|
||||
# updateStrategy:
|
||||
# type: RollingUpdate
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: api-logger-promtail
|
||||
annotations:
|
||||
prometheus.io/port: http-metrics
|
||||
prometheus.io/scrape: "true"
|
||||
spec:
|
||||
serviceAccountName: api-logger-promtail-ac
|
||||
automountServiceAccountToken: true
|
||||
containers:
|
||||
- name: api-logger-promtail
|
||||
image: git.ego.freeddns.org/egommerce/api-logger-promtail:dev
|
||||
imagePullPolicy: Always
|
||||
env:
|
||||
- name: HOSTNAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: spec.nodeName
|
||||
- name: GOMAXPROCS
|
||||
valueFrom:
|
||||
resourceFieldRef:
|
||||
divisor: '1'
|
||||
resource: limits.cpu
|
||||
- name: GOMEMLIMIT
|
||||
valueFrom:
|
||||
resourceFieldRef:
|
||||
divisor: '1'
|
||||
resource: limits.memory
|
||||
ports:
|
||||
- name: promtail-http
|
||||
containerPort: 3101
|
||||
resources:
|
||||
limits:
|
||||
cpu: 100m
|
||||
memory: 512Mi
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 128Mi
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /ready
|
||||
port: promtail-http
|
||||
initialDelaySeconds: 45
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: /ready
|
||||
port: promtail-http
|
||||
initialDelaySeconds: 45
|
||||
volumeMounts:
|
||||
# - name: api-logger-promtail-config
|
||||
# mountPath: /etc/promtail
|
||||
- name: api-logger-promtail-run
|
||||
mountPath: /run/promtail
|
||||
- name: api-logger-promtail-varlog
|
||||
mountPath: /var/log
|
||||
readOnly: true
|
||||
- name: api-logger-promtail-docker
|
||||
mountPath: /var/lib/docker/containers
|
||||
readOnly: true
|
||||
- name: api-logger-promtail-tmp
|
||||
mountPath: /tmp
|
||||
subPath: tmp
|
||||
readOnly: false
|
||||
securityContext:
|
||||
privileged: true
|
||||
readOnlyRootFilesystem: true
|
||||
runAsUser: 0
|
||||
seccompProfile:
|
||||
type: RuntimeDefault
|
||||
capabilities:
|
||||
drop:
|
||||
- ALL
|
||||
terminationGracePeriodSeconds: 60
|
||||
volumes:
|
||||
- name: api-logger-promtail-run
|
||||
hostPath:
|
||||
path: /run/promtail
|
||||
- name: api-logger-promtail-varlog
|
||||
hostPath:
|
||||
path: /var/log
|
||||
- name: api-logger-promtail-docker
|
||||
hostPath:
|
||||
path: /var/lib/docker/containers
|
||||
- name: api-logger-promtail-tmp
|
||||
emptyDir:
|
||||
sizeLimit: 1Gi
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolume
|
||||
metadata:
|
||||
name: api-logger-prometheus-pv
|
||||
namespace: egommerce
|
||||
spec:
|
||||
capacity:
|
||||
storage: 5Gi
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
storageClassName: api-logger-prometheus-pv
|
||||
hostPath:
|
||||
path: "/home/keedosn/.egommerce/prometheus" # Ensure this path exists on the node
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: api-logger-prometheus-pvc
|
||||
namespace: egommerce
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 5Gi
|
||||
storageClassName: api-logger-prometheus-pv
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: api-logger-prometheus
|
||||
namespace: egommerce
|
||||
labels:
|
||||
name: api-logger-prometheus
|
||||
annotations: {}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: api-logger-prometheus
|
||||
namespace: egommerce
|
||||
labels:
|
||||
app: api-logger-prometheus
|
||||
spec:
|
||||
type: NodePort
|
||||
selector:
|
||||
app: api-logger-prometheus
|
||||
ports:
|
||||
- name: api-logger-prometheus
|
||||
protocol: TCP
|
||||
port: 9090
|
||||
nodePort: 31402
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: api-logger-prometheus
|
||||
namespace: egommerce
|
||||
labels:
|
||||
app: api-logger-prometheus
|
||||
spec:
|
||||
# revisionHistoryLimit: 1
|
||||
# replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: api-logger-prometheus
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: api-logger-prometheus
|
||||
annotations:
|
||||
prometheus.io/scrape: "true"
|
||||
prometheus.io/port: prometheus-http
|
||||
spec:
|
||||
serviceAccountName: api-logger-prometheus
|
||||
automountServiceAccountToken: true
|
||||
securityContext:
|
||||
runAsGroup: 10001
|
||||
runAsUser: 10001
|
||||
runAsNonRoot: true
|
||||
containers:
|
||||
- name: api-logger-prometheus
|
||||
image: git.ego.freeddns.org/egommerce/api-logger-prometheus:dev
|
||||
imagePullPolicy: Always
|
||||
env:
|
||||
- name: GOMAXPROCS
|
||||
valueFrom:
|
||||
resourceFieldRef:
|
||||
divisor: '1'
|
||||
resource: limits.cpu
|
||||
- name: GOMEMLIMIT
|
||||
valueFrom:
|
||||
resourceFieldRef:
|
||||
divisor: '1'
|
||||
resource: limits.memory
|
||||
args:
|
||||
# - '--storage.tsdb.retention.time=15d'
|
||||
- '--config.file=/etc/prometheus/prometheus.yml'
|
||||
- '--storage.tsdb.path=/prometheus/data/'
|
||||
# - '--web.console.libraries=/etc/prometheus/console_libraries'
|
||||
# - '--web.console.templates=/etc/prometheus/consoles'
|
||||
# - '--enable-feature=concurrent-rule-eval,promql-experimental-functions,exemplar-storage,promql-per-step-stats,native-histograms'
|
||||
# - '--web.enable-remote-write-receiver'
|
||||
# - '--web.enable-otlp-receiver'
|
||||
# - '--web.enable-lifecycle'
|
||||
- '--log.level=info'
|
||||
# - '--log.format=json'
|
||||
ports:
|
||||
- name: prometheus-http
|
||||
containerPort: 9090
|
||||
# livenessProbe:
|
||||
# httpGet:
|
||||
# path: /-/healthy
|
||||
# port: prometheus-http
|
||||
# readinessProbe:
|
||||
# httpGet:
|
||||
# path: /-/ready
|
||||
# port: prometheus-http
|
||||
resources:
|
||||
limits:
|
||||
cpu: 150m
|
||||
memory: 894Mi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 512Mi
|
||||
volumeMounts:
|
||||
# - name: config-volume
|
||||
# mountPath: /etc/prometheus
|
||||
# - name: config-volume
|
||||
# mountPath: /etc/config/alerting_rules.yml
|
||||
# subPath: alerting_rules.yml
|
||||
- name: api-logger-prometheus-storage
|
||||
mountPath: /prometheus/data
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
privileged: false
|
||||
readOnlyRootFilesystem: false #true DEFAULT !!!
|
||||
seccompProfile:
|
||||
type: RuntimeDefault
|
||||
capabilities:
|
||||
drop:
|
||||
- ALL
|
||||
volumes:
|
||||
- name: api-logger-prometheus-storage
|
||||
persistentVolumeClaim:
|
||||
claimName: api-logger-prometheus-pvc
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: api-logger-grafana
|
||||
namespace: egommerce
|
||||
labels:
|
||||
app: api-logger-grafana
|
||||
spec:
|
||||
type: NodePort
|
||||
selector:
|
||||
app: api-logger-grafana
|
||||
ports:
|
||||
- name: api-logger-grafana-api
|
||||
protocol: TCP
|
||||
port: 3000
|
||||
nodePort: 31400
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolume
|
||||
metadata:
|
||||
name: api-logger-grafana-pv
|
||||
namespace: egommerce
|
||||
spec:
|
||||
capacity:
|
||||
storage: 5Gi
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
storageClassName: api-logger-grafana-pv
|
||||
hostPath:
|
||||
path: "/home/keedosn/.egommerce/grafana" # Ensure this path exists on the node
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: api-logger-grafana-pvc
|
||||
namespace: egommerce
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 5Gi
|
||||
storageClassName: api-logger-grafana-pv
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: api-logger-grafana
|
||||
namespace: egommerce
|
||||
labels:
|
||||
app: api-logger-grafana
|
||||
spec:
|
||||
revisionHistoryLimit: 1
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: api-logger-grafana
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: api-logger-grafana
|
||||
annotations:
|
||||
prometheus.io/scrape: "true"
|
||||
prometheus.io/port: "3000"
|
||||
filter.by.port.name: "true"
|
||||
spec:
|
||||
automountServiceAccountToken: false
|
||||
securityContext:
|
||||
runAsNonRoot: true
|
||||
runAsGroup: 65534
|
||||
runAsUser: 65534
|
||||
initContainers:
|
||||
- name: curl
|
||||
image: curlimages/curl:latest
|
||||
imagePullPolicy: IfNotPresent
|
||||
command:
|
||||
- /bin/sh
|
||||
args:
|
||||
- -c
|
||||
- |
|
||||
which curl
|
||||
volumeMounts:
|
||||
- name: api-logger-grafana-storage
|
||||
mountPath: /var/lib/grafana
|
||||
subPath: grafana
|
||||
containers:
|
||||
- name: api-logger-grafana
|
||||
image: git.ego.freeddns.org/egommerce/api-logger-grafana:dev
|
||||
imagePullPolicy: Always
|
||||
env:
|
||||
- name: GOMAXPROCS
|
||||
valueFrom:
|
||||
resourceFieldRef:
|
||||
divisor: '1'
|
||||
resource: limits.cpu
|
||||
- name: GOMEMLIMIT
|
||||
valueFrom:
|
||||
resourceFieldRef:
|
||||
divisor: '1'
|
||||
resource: limits.memory
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
resources:
|
||||
limits:
|
||||
cpu: 100m
|
||||
memory: 768Mi
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 512Mi
|
||||
volumeMounts:
|
||||
- name: api-logger-grafana-storage
|
||||
mountPath: /var/lib/grafana
|
||||
subPath: grafana
|
||||
- name: api-logger-grafana-storage
|
||||
mountPath: /var/lib/grafana/dashboards
|
||||
subPath: dashboards
|
||||
- name: api-logger-grafana-storage
|
||||
mountPath: /tmp
|
||||
subPath: tmp
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
privileged: false
|
||||
readOnlyRootFilesystem: true
|
||||
seccompProfile:
|
||||
type: RuntimeDefault
|
||||
capabilities:
|
||||
drop:
|
||||
- ALL
|
||||
volumes:
|
||||
- name: api-logger-grafana-storage
|
||||
persistentVolumeClaim:
|
||||
claimName: api-logger-grafana-pvc
|
||||
91
deploy/k8s/catalog-svc.yml
Normal file
91
deploy/k8s/catalog-svc.yml
Normal file
@@ -0,0 +1,91 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: catalog-svc
|
||||
namespace: egommerce
|
||||
labels:
|
||||
app: catalog-svc
|
||||
spec:
|
||||
type: NodePort
|
||||
selector:
|
||||
app: catalog-svc
|
||||
ports:
|
||||
- name: catalog-svc
|
||||
protocol: TCP
|
||||
port: 443
|
||||
nodePort: 31830
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: catalog-svc
|
||||
namespace: egommerce
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: catalog-svc
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: catalog-svc
|
||||
spec:
|
||||
containers:
|
||||
- name: catalog-svc
|
||||
image: git.ego.freeddns.org/egommerce/catalog-svc:dev
|
||||
imagePullPolicy: Always
|
||||
command: [
|
||||
"sh"
|
||||
]
|
||||
args: [
|
||||
"-c",
|
||||
"/app"
|
||||
]
|
||||
env:
|
||||
- name: APP_NAME
|
||||
value: catalog-svc
|
||||
- name: APP_DOMAIN
|
||||
value: catalog-svc.egommerce.local
|
||||
- name: APP_PATH_PREFIX
|
||||
value: /catalog
|
||||
- name: API_EVENTBUS_URL
|
||||
value: amqp://guest:guest@api-eventbus:5672
|
||||
# - name: API_MONGODB_URL
|
||||
# value: mongodb://mongodb:12345678@mongo-db:27017
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
scheme: HTTPS
|
||||
port: 443
|
||||
path: /health
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 5
|
||||
failureThreshold: 5
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
scheme: HTTPS
|
||||
port: 443
|
||||
path: /health
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 5
|
||||
failureThreshold: 1
|
||||
volumeMounts:
|
||||
- name: catalog-cert
|
||||
mountPath: /certs/catalog-svc.crt
|
||||
readOnly: true
|
||||
- name: catalog-key
|
||||
mountPath: /certs/catalog-svc.key
|
||||
resources:
|
||||
limits:
|
||||
cpu: "1"
|
||||
memory: 512M
|
||||
ports:
|
||||
- containerPort: 443
|
||||
volumes:
|
||||
- name: catalog-cert
|
||||
hostPath:
|
||||
path: /egommerce/stack/deploy/certs/catalog-svc/catalog-svc.crt
|
||||
type: File
|
||||
- name: catalog-key
|
||||
hostPath:
|
||||
path: /egommerce/stack/deploy/certs/catalog-svc/catalog-svc.key
|
||||
type: File
|
||||
119
deploy/k8s/db-postgres.yml
Normal file
119
deploy/k8s/db-postgres.yml
Normal file
@@ -0,0 +1,119 @@
|
||||
apiVersion: v1
|
||||
kind: PersistentVolume
|
||||
metadata:
|
||||
name: db-postgres-pv
|
||||
namespace: egommerce
|
||||
spec:
|
||||
capacity:
|
||||
storage: 5Gi
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
storageClassName: db-postgres-pv
|
||||
hostPath:
|
||||
path: "/home/keedosn/.egommerce/postgres" # Ensure this path exists on the node
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: db-postgres-pvc
|
||||
namespace: egommerce
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 5Gi
|
||||
storageClassName: db-postgres-pv
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: db-postgres
|
||||
namespace: egommerce
|
||||
labels:
|
||||
app: db-postgres
|
||||
spec:
|
||||
type: NodePort
|
||||
selector:
|
||||
app: db-postgres
|
||||
ports:
|
||||
- name: db-postgres
|
||||
protocol: TCP
|
||||
port: 5432
|
||||
nodePort: 31500
|
||||
# ---
|
||||
# apiVersion: v1
|
||||
# kind: Service
|
||||
# metadata:
|
||||
# name: db-postgres-metrics
|
||||
# namespace: egommerce
|
||||
# labels:
|
||||
# app: db-postgres
|
||||
# spec:
|
||||
# type: NodePort
|
||||
# selector:
|
||||
# app: db-postgres
|
||||
# ports:
|
||||
# - name: db-postgres
|
||||
# protocol: TCP
|
||||
# port: 9187
|
||||
# nodePort: 31501
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: db-postgres
|
||||
namespace: egommerce
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: db-postgres
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: db-postgres
|
||||
spec:
|
||||
securityContext:
|
||||
runAsUser: 70 # postgres user
|
||||
fsGroup: 70 # postgres user
|
||||
# remember to change perms and owner of ~/.egommerce/postgres directory
|
||||
containers:
|
||||
- name: db-postgres
|
||||
image: git.ego.freeddns.org/egommerce/db-postgres:dev
|
||||
imagePullPolicy: Always
|
||||
env:
|
||||
- name: APP_NAME
|
||||
value: db-postgres
|
||||
- name: APP_DOMAIN
|
||||
value: db-postgres.egommerce.local
|
||||
- name: POSTGRES_USER
|
||||
value: postgres
|
||||
- name: POSTGRES_DB
|
||||
value: egommerce
|
||||
- name: POSTGRES_PASSWORD
|
||||
# value: H5Gd7^37*Hka*a72
|
||||
value: "12345678"
|
||||
- name: PGDATA
|
||||
value: /var/lib/postgresql/data
|
||||
resources:
|
||||
limits:
|
||||
cpu: "1"
|
||||
memory: 512M
|
||||
ports:
|
||||
- containerPort: 5432
|
||||
volumeMounts:
|
||||
- name: db-postgres-storage
|
||||
mountPath: /var/lib/postgresql/data
|
||||
# subPath: data
|
||||
- name: db-postgres-metrics
|
||||
image: prometheuscommunity/postgres-exporter:latest
|
||||
ports:
|
||||
- containerPort: 9187
|
||||
env:
|
||||
- name: DATA_SOURCE_NAME
|
||||
value: "postgresql://postgres:12345678@db-postgres:5432/egommerce" #?sslmode=disable
|
||||
volumes:
|
||||
- name: db-postgres-storage
|
||||
persistentVolumeClaim:
|
||||
claimName: db-postgres-pvc
|
||||
115
deploy/k8s/identity-svc.yml
Normal file
115
deploy/k8s/identity-svc.yml
Normal file
@@ -0,0 +1,115 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: identity-svc
|
||||
namespace: egommerce
|
||||
labels:
|
||||
app: identity-svc
|
||||
spec:
|
||||
type: NodePort
|
||||
selector:
|
||||
app: identity-svc
|
||||
ports:
|
||||
- name: identity-svc
|
||||
port: 443
|
||||
nodePort: 31810
|
||||
# - name: identity-svc-metrics
|
||||
# port: 9090
|
||||
# nodePort: 31811
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: identity-svc
|
||||
namespace: egommerce
|
||||
spec:
|
||||
replicas: 1
|
||||
strategy:
|
||||
type: RollingUpdate
|
||||
rollingUpdate:
|
||||
maxSurge: 1 # Number of extra pods that can be created during update
|
||||
maxUnavailable: 1 # Max number of pods that can be unavailable during update
|
||||
selector:
|
||||
matchLabels:
|
||||
app: identity-svc
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: identity-svc
|
||||
spec:
|
||||
# initContainers:
|
||||
# - name: identity-svc-init
|
||||
# image: busybox:1.28
|
||||
# command: [
|
||||
# 'sh',
|
||||
# '-c',
|
||||
# '/bin/migrate'
|
||||
# ]
|
||||
containers:
|
||||
- name: identity-svc
|
||||
image: git.ego.freeddns.org/egommerce/identity-svc:dev
|
||||
imagePullPolicy: Always
|
||||
env:
|
||||
- name: APP_NAME
|
||||
value: identity-svc
|
||||
- name: APP_DOMAIN
|
||||
value: identity-svc.egommerce.local
|
||||
- name: APP_PATH_PREFIX
|
||||
value: /identity
|
||||
- name: API_EVENTBUS_URL
|
||||
value: amqp://guest:guest@api-eventbus:5672
|
||||
- name: API_MONGODB_URL
|
||||
value: mongodb://mongodb:12345678@mongo-db:27017
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
scheme: HTTPS
|
||||
port: identity-svc
|
||||
path: /health
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 5
|
||||
failureThreshold: 1
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
scheme: HTTPS
|
||||
port: identity-svc
|
||||
path: /health
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 5
|
||||
failureThreshold: 1
|
||||
volumeMounts:
|
||||
- name: identity-cert
|
||||
mountPath: /certs/identity-svc.crt
|
||||
readOnly: true
|
||||
- name: identity-key
|
||||
mountPath: /certs/identity-svc.key
|
||||
readOnly: true
|
||||
- name: identity-migrations
|
||||
mountPath: /migrations
|
||||
readOnly: true
|
||||
resources:
|
||||
limits:
|
||||
cpu: "1"
|
||||
memory: 512M
|
||||
ports:
|
||||
- name: identity-svc
|
||||
containerPort: 443
|
||||
# - name: identity-svc-metrics
|
||||
# image: prom/prometheus-exporter:latest
|
||||
# ports:
|
||||
# - containerPort: 9090
|
||||
# args:
|
||||
# - --web.listen-address=:9090
|
||||
# - --web.telemetry-path=/metrics
|
||||
volumes:
|
||||
- name: identity-cert
|
||||
hostPath:
|
||||
path: /egommerce/stack/deploy/certs/identity-svc/identity-svc.crt
|
||||
type: File
|
||||
- name: identity-key
|
||||
hostPath:
|
||||
path: /egommerce/stack/deploy/certs/identity-svc/identity-svc.key
|
||||
type: File
|
||||
- name: identity-migrations
|
||||
hostPath:
|
||||
path: /egommerce/stack/deploy/db_migrations/identity-svc
|
||||
type: Directory
|
||||
6
deploy/k8s/namespace.yml
Normal file
6
deploy/k8s/namespace.yml
Normal file
@@ -0,0 +1,6 @@
|
||||
kind: Namespace
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: egommerce
|
||||
labels:
|
||||
name: egommerce
|
||||
8
deploy/k8s/secret.yml
Normal file
8
deploy/k8s/secret.yml
Normal file
@@ -0,0 +1,8 @@
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: regcred
|
||||
namespace: egommerce
|
||||
data:
|
||||
.dockerconfigjson: ewoJImF1dGhzIjogewoJCSJnaXQuZWdvLmNsb3VkbnMuYmUiOiB7CgkJCSJhdXRoIjogImEyVmxaRzl6YmpwWGIyeHVaVFZQY0hKdlozSmhiVzkzWVc1cFpVQT0iCgkJfSwKCQkiaHR0cHM6Ly9pbmRleC5kb2NrZXIuaW8vdjEvIjogewoJCQkiYXV0aCI6ICJhMlZsWkc5emJqcGtiMk5yWlhKdmQyVTFiMkp5WVhwNSIKCQl9Cgl9Cn0=
|
||||
type: kubernetes.io/dockerconfigjson
|
||||
@@ -1,48 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
name: api-registry
|
||||
labels:
|
||||
app.kubernetes.io/name: api-registry
|
||||
spec:
|
||||
containers:
|
||||
- name: api-registry
|
||||
image: git.ego.cloudns.be/egommerce/api-registry:dev
|
||||
resources:
|
||||
limits:
|
||||
cpu: "1"
|
||||
memory: 512M
|
||||
ports:
|
||||
- containerPort: 8501
|
||||
name: api-registry-ui
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: api-registry
|
||||
spec:
|
||||
selector:
|
||||
app.kubernetes.io/name: api-registry
|
||||
ports:
|
||||
- name: api-registry-ui
|
||||
protocol: TCP
|
||||
port: 8501
|
||||
targetPort: api-registry-ui
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: api-registry
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: api-registry
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: api-registry
|
||||
spec:
|
||||
containers:
|
||||
- name: api-registry
|
||||
image: git.ego.cloudns.be/egommerce/api-registry:dev
|
||||
@@ -1,28 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
name: api-registry
|
||||
labels:
|
||||
app.kubernetes.io/name: api-registry
|
||||
spec:
|
||||
containers:
|
||||
- name: api-registry
|
||||
image: git.ego.cloudns.be/egommerce/api-registry:prod
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: api-registry
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: api-registry
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: api-registry
|
||||
spec:
|
||||
containers:
|
||||
- name: api-registry
|
||||
image: git.ego.cloudns.be/egommerce/api-registry:prod
|
||||
@@ -1,78 +0,0 @@
|
||||
# kind: Namespace
|
||||
# apiVersion: v1
|
||||
# metadata:
|
||||
# name: egommerce
|
||||
# labels:
|
||||
# name: egommerce
|
||||
# ---
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: docker-credentials
|
||||
data:
|
||||
.dockerconfigjson: ewoJImF1dGhzIjogewoJCSJnaXQucGJpZXJuYXQuaW8iOiB7CgkJCSJhdXRoIjogImEyVmxaRzl6YmpwWGIyeHVaVFZQY0hKdlozSmhiVzkzWVc1cFpVQT0iCgkJfSwKCQkiaHR0cHM6Ly9pbmRleC5kb2NrZXIuaW8vdjEvIjogewoJCQkiYXV0aCI6ICJhMlZsWkc5emJqcGtiMk5yWlhKdmQyVTFiMkp5WVhwNSIKCQl9Cgl9Cn0=
|
||||
type: kubernetes.io/dockerconfigjson
|
||||
---
|
||||
# apiVersion: v1
|
||||
# kind: Pod
|
||||
# metadata:
|
||||
# name: api-registry
|
||||
# labels:
|
||||
# app.kubernetes.io/name: api-registry
|
||||
# spec:
|
||||
# hostNetwork: true
|
||||
# containers:
|
||||
# - name: api-registry
|
||||
# image: git.pbiernat.dev/egommerce/api-registry:dev
|
||||
# resources:
|
||||
# limits:
|
||||
# cpu: "1"
|
||||
# memory: 512M
|
||||
# ports:
|
||||
# - containerPort: 8501
|
||||
# name: api-registry-ui
|
||||
# ---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: api-registry
|
||||
spec:
|
||||
selector:
|
||||
app.kubernetes.io/name: api-registry
|
||||
ports:
|
||||
- name: api-registry-ui
|
||||
protocol: TCP
|
||||
port: 8501
|
||||
targetPort: api-registry-ui
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: api-registry
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: api-registry
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: api-registry
|
||||
spec:
|
||||
hostNetwork: true
|
||||
hostAliases:
|
||||
- ip: "127.0.0.1"
|
||||
hostnames:
|
||||
- "git.pbiernat.io"
|
||||
dnsPolicy: ClusterFirstWithHostNet
|
||||
restartPolicy: Always
|
||||
containers:
|
||||
- name: api-registry
|
||||
image: git.pbiernat.dev/egommerce/api-registry:dev
|
||||
resources:
|
||||
limits:
|
||||
cpu: "1"
|
||||
memory: 512M
|
||||
ports:
|
||||
- containerPort: 53
|
||||
- containerPort: 8501
|
||||
Reference in New Issue
Block a user