mirror of
https://github.com/hexolan/panels.git
synced 2026-03-26 11:41:17 +00:00
manifests
This commit is contained in:
76
manifests/auth-service.yaml
Normal file
76
manifests/auth-service.yaml
Normal file
@@ -0,0 +1,76 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: auth-service
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: auth-service
|
||||
strategy: {}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: auth-service
|
||||
spec:
|
||||
containers:
|
||||
- name: auth-service
|
||||
image: panels/auth-service
|
||||
ports:
|
||||
- containerPort: 9090
|
||||
env:
|
||||
- name: JWT_PUBLIC_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: panels-jwtkeys-secret
|
||||
key: public-key
|
||||
- name: JWT_PRIVATE_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: panels-jwtkeys-secret
|
||||
key: private-key
|
||||
- name: PASSWORD_PEPPER
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: auth-service-config
|
||||
key: password-pepper
|
||||
- name: POSTGRES_HOST
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: auth-service-config
|
||||
key: postgres-host
|
||||
- name: POSTGRES_USER
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: auth-service-config
|
||||
key: postgres-user
|
||||
- name: POSTGRES_PASS
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: auth-service-config
|
||||
key: postgres-pass
|
||||
- name: POSTGRES_DATABASE
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: auth-service-config
|
||||
key: postgres-database
|
||||
- name: KAFKA_BROKERS
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: panels-shared-config
|
||||
key: kafka-brokers
|
||||
resources: {}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: auth-service
|
||||
spec:
|
||||
selectors:
|
||||
app: auth-service
|
||||
type: ClusterIP
|
||||
ports:
|
||||
- name: grpc
|
||||
port: 9090
|
||||
targetPort: 9090
|
||||
protocol: TCP
|
||||
71
manifests/comment-service.yaml
Normal file
71
manifests/comment-service.yaml
Normal file
@@ -0,0 +1,71 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: comment-service
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: comment-service
|
||||
strategy: {}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: comment-service
|
||||
spec:
|
||||
containers:
|
||||
- name: comment-service
|
||||
image: panels/comment-service
|
||||
ports:
|
||||
- containerPort: 9090
|
||||
env:
|
||||
- name: POSTGRES_HOST
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: comment-service-config
|
||||
key: postgres-host
|
||||
- name: POSTGRES_USER
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: comment-service-config
|
||||
key: postgres-user
|
||||
- name: POSTGRES_PASS
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: comment-service-config
|
||||
key: postgres-pass
|
||||
- name: POSTGRES_DATABASE
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: comment-service-config
|
||||
key: postgres-database
|
||||
- name: REDIS_HOST
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: comment-service-config
|
||||
key: redis-host
|
||||
- name: REDIS_PASS
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: comment-service-config
|
||||
key: redis-pass
|
||||
- name: KAFKA_BROKERS
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: panels-shared-config
|
||||
key: kafka-brokers
|
||||
resources: {}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: comment-service
|
||||
spec:
|
||||
selectors:
|
||||
app: comment-service
|
||||
type: ClusterIP
|
||||
ports:
|
||||
- name: grpc
|
||||
port: 9090
|
||||
targetPort: 9090
|
||||
protocol: TCP
|
||||
35
manifests/frontend.yaml
Normal file
35
manifests/frontend.yaml
Normal file
@@ -0,0 +1,35 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: frontend
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: frontend
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: frontend
|
||||
spec:
|
||||
containers:
|
||||
- name: frontend
|
||||
image: panels/frontend
|
||||
ports:
|
||||
- containerPort: 80
|
||||
resources: {}
|
||||
restartPolicy: Always
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: frontend
|
||||
spec:
|
||||
selectors:
|
||||
app: frontend
|
||||
type: ClusterIP
|
||||
ports:
|
||||
- name: http
|
||||
port: 80
|
||||
targetPort: 80
|
||||
protocol: TCP
|
||||
66
manifests/gateway-service.yaml
Normal file
66
manifests/gateway-service.yaml
Normal file
@@ -0,0 +1,66 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: gateway-service
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: gateway-service
|
||||
strategy: {}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: gateway-service
|
||||
spec:
|
||||
containers:
|
||||
- name: gateway-service
|
||||
image: panels/gateway-service
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
env:
|
||||
- name: JWT_PUBLIC_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: panels-jwtkeys-secret
|
||||
key: public-key
|
||||
- name: AUTH_SVC_ADDR
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: gateway-service-config
|
||||
key: auth-service-address
|
||||
- name: COMMENT_SVC_ADDR
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: gateway-service-config
|
||||
key: comment-service-address
|
||||
- name: PANEL_SVC_ADDR
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: gateway-service-config
|
||||
key: panel-service-address
|
||||
- name: POST_SVC_ADDR
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: gateway-service-config
|
||||
key: post-service-address
|
||||
- name: USER_SVC_ADDR
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: gateway-service-config
|
||||
key: user-service-address
|
||||
resources: {}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: gateway-service
|
||||
spec:
|
||||
selectors:
|
||||
app: gateway-service
|
||||
type: ClusterIP
|
||||
ports:
|
||||
- name: http
|
||||
port: 3000
|
||||
targetPort: 3000
|
||||
protocol: TCP
|
||||
44
manifests/jwtkeys-secret.yaml
Normal file
44
manifests/jwtkeys-secret.yaml
Normal file
@@ -0,0 +1,44 @@
|
||||
apiVersion: v1
|
||||
kind: Secrets
|
||||
metadata:
|
||||
name: panels-jwtkeys-secret
|
||||
type: Opaque
|
||||
data:
|
||||
public-key: |
|
||||
-----BEGIN PUBLIC KEY-----
|
||||
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA7LhPzG5rcU2A55qek4fK
|
||||
E7T0YyXLTkEXjUXvd7f/7UY21BelgHVTS2L71Qms/sOjHEXwR8lwvP9VxWDTA0bx
|
||||
n9rpXTV0UuFEam8JFe70O7Z9+43WujjbagMON/15YkwF94xiZPrYrZ18LE2eVHiC
|
||||
eQmtW3W8AK5qZzrvDDwAdbTLvmKEkDpeJa82Ay0O/cqmIQ7Ctu4GWczwRJMbM2Tm
|
||||
5PY3YCVgEtXMVcP0eeawcIAtY5WrYrtOUdMAhtYtFXXUiNmibAR8lS8Mu20juFw9
|
||||
bgoaPQvR7aW/8K/hpiGfmsyWYfljG3LNbRB0JbrU9q6z6W/rD3FUBBeCyoVzP8N3
|
||||
SwIDAQAB
|
||||
-----END PUBLIC KEY-----
|
||||
private-key: |
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIIEpgIBAAKCAQEA7LhPzG5rcU2A55qek4fKE7T0YyXLTkEXjUXvd7f/7UY21Bel
|
||||
gHVTS2L71Qms/sOjHEXwR8lwvP9VxWDTA0bxn9rpXTV0UuFEam8JFe70O7Z9+43W
|
||||
ujjbagMON/15YkwF94xiZPrYrZ18LE2eVHiCeQmtW3W8AK5qZzrvDDwAdbTLvmKE
|
||||
kDpeJa82Ay0O/cqmIQ7Ctu4GWczwRJMbM2Tm5PY3YCVgEtXMVcP0eeawcIAtY5Wr
|
||||
YrtOUdMAhtYtFXXUiNmibAR8lS8Mu20juFw9bgoaPQvR7aW/8K/hpiGfmsyWYflj
|
||||
G3LNbRB0JbrU9q6z6W/rD3FUBBeCyoVzP8N3SwIDAQABAoIBAQDXsrab2/2xF2Mf
|
||||
JwfZ/ICI5nlNotGXM77HLvOejh340eMB7a4T2FSWu9Im9BMbbZ7CE4R3lTlSLgO0
|
||||
v55nPQzMkYfVM/ET2EokBZsszjjj9EzlnAAOXeKovbIGGMSzafyB7fx2cRBhWsAc
|
||||
Cnn8FHcm3UeGsEgoAsXX3J6X8lCk7uGHGgHg2OoIGy3gHxbp8BbVRWxAH2nkWcqz
|
||||
zC45jzE+knmZkW7I99eAwLN77AzDfXYIMkv6EvxpYWPgUIknwyww2ghcGmlXpk7L
|
||||
gT3kyujDh+j9ZkAZv7QwbKVka/HWAD2CGKP4XL+gaeoseGC19ckEolywaf1c4gy2
|
||||
DN5gBCHpAoGBAPrjQhochIu1c3S8NawCaE77gF1qDWA35onIKFuhT0a5wV/YLsUr
|
||||
k2IzNvhLqoWKSndaNgxici95d+wXVOpKKCYX+GcU5fDubIx7joKVqLj+hMtb/5AK
|
||||
S0P00rjBPfPqMk+mWaG1XMbx1/ne3boWVVCr+PnVo72eZ9z8ul+7mzstAoGBAPGL
|
||||
Je7iE7fdKYx1Cr3l7ImqhpmTmG+wohwpZuTx4KCyc0eZRPJJGKq3+TtzzxSdG94T
|
||||
3czyRZ7MbjYKryVOw4G2Ii1eZ1oiIRkI8Q2CBWCYaiyXXAwLeJHoC9yjgAD0zWmS
|
||||
LGqfpJpZJE9CsuH2U27qcFkA8o3kf8CE8rCFCKdXAoGBAJf9i3M0KZxVzd8/kihl
|
||||
wPlwZeCxue67jt+TsddpDxTiveKpnhP3BS+tpTSg6mpCUECkFzBDh7d5GAygSeIy
|
||||
EMabKPKR94eReZNV2w0DS5bfImXskxOZGOXPcMVa1IRrMhWMyqorrEweAWCwApWU
|
||||
qBTaSlhYc/0Q9Q0s0l/i0PT1AoGBANOpILt9ZtQGvML1SU1w7t8QDFUFzl2JRfUx
|
||||
npXfEv0egwBp4c4Cmdf30TH04LDqn6HyfLl8T9/Auo8mu6YQqCfBR5/ECwMjxycd
|
||||
+8XfewDTbq7Wj/WKE8Sft81HhQLRgjMRwVRJwr7ygGvoQcLazO/0BjEoMGSAqCY3
|
||||
Gkfuu8+PAoGBAOUxFqskISqop2PbYFd8HE74xJbVAG1Jf8uXIe2ysDqkvu9Fbzv5
|
||||
Zw5invtp5VHpZ0SLSytUb6KsHcRiqI5s2mnMnaLip2RgtnEsA5fcnWx1aFQIrXXb
|
||||
UQqDvIKwRhOfcfDdu1CLYiobtcCesBHIG1sO2+/TbauXnlpaWYz7CXkV
|
||||
-----END RSA PRIVATE KEY-----
|
||||
56
manifests/kafka.yaml
Normal file
56
manifests/kafka.yaml
Normal file
@@ -0,0 +1,56 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: kafka
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: kafka
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: kafka
|
||||
spec:
|
||||
containers:
|
||||
- name: kafka
|
||||
image: bitnami/kafka:3.4
|
||||
ports:
|
||||
- containerPort: 19093
|
||||
- containerPort: 19092
|
||||
- containerPort: 9092
|
||||
env:
|
||||
- name: KAFKA_CFG_ADVERTISED_LISTENERS
|
||||
value: INTERNAL://kafka:19092,EXTERNAL://localhost:9092
|
||||
- name: KAFKA_CFG_CONTROLLER_LISTENER_NAMES
|
||||
value: CONTROLLER
|
||||
- name: KAFKA_CFG_CONTROLLER_QUORUM_VOTERS
|
||||
value: 0@kafka:19093
|
||||
- name: KAFKA_CFG_INTER_BROKER_LISTENER_NAME
|
||||
value: INTERNAL
|
||||
- name: KAFKA_CFG_LISTENERS
|
||||
value: CONTROLLER://:19093,INTERNAL://:19092,EXTERNAL://:9092
|
||||
- name: KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP
|
||||
value: CONTROLLER:PLAINTEXT,INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
|
||||
- name: KAFKA_CFG_NODE_ID
|
||||
value: "0"
|
||||
- name: KAFKA_CFG_PROCESS_ROLES
|
||||
value: controller,broker
|
||||
- name: KAFKA_KRAFT_CLUSTER_ID
|
||||
value: g9rbXaCaSGqB3CURPeEvTA
|
||||
resources: {}
|
||||
restartPolicy: Always
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: kafka
|
||||
spec:
|
||||
selectors:
|
||||
app: kafka
|
||||
type: ClusterIP
|
||||
ports:
|
||||
- name: kafka
|
||||
port: 19092
|
||||
targetPort: 19092
|
||||
protocol: TCP
|
||||
76
manifests/panel-service.yaml
Normal file
76
manifests/panel-service.yaml
Normal file
@@ -0,0 +1,76 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: panel-service
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: panel-service
|
||||
strategy: {}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: panel-service
|
||||
spec:
|
||||
containers:
|
||||
- name: panel-service
|
||||
image: panels/panel-service
|
||||
ports:
|
||||
- containerPort: 9090
|
||||
env:
|
||||
- name: POSTGRES_HOST
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: panel-service-config
|
||||
key: postgres-host
|
||||
- name: POSTGRES_USER
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: panel-service-config
|
||||
key: postgres-user
|
||||
- name: POSTGRES_PASS
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: panel-service-config
|
||||
key: postgres-pass
|
||||
- name: POSTGRES_DATABASE
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: panel-service-config
|
||||
key: postgres-database
|
||||
- name: REDIS_HOST
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: panel-service-config
|
||||
key: redis-host
|
||||
- name: REDIS_PASS
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: panel-service-config
|
||||
key: redis-pass
|
||||
- name: LOG_LEVEL
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: panel-service-config
|
||||
key: log-level
|
||||
- name: KAFKA_BROKERS
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: panels-shared-config
|
||||
key: kafka-brokers
|
||||
resources: {}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: panel-service
|
||||
spec:
|
||||
selectors:
|
||||
app: panel-service
|
||||
type: ClusterIP
|
||||
ports:
|
||||
- name: grpc
|
||||
port: 9090
|
||||
targetPort: 9090
|
||||
protocol: TCP
|
||||
76
manifests/post-service.yaml
Normal file
76
manifests/post-service.yaml
Normal file
@@ -0,0 +1,76 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: post-service
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: post-service
|
||||
strategy: {}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: post-service
|
||||
spec:
|
||||
containers:
|
||||
- name: post-service
|
||||
image: panels/post-service
|
||||
ports:
|
||||
- containerPort: 9090
|
||||
env:
|
||||
- name: POSTGRES_HOST
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: post-service-config
|
||||
key: postgres-host
|
||||
- name: POSTGRES_USER
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: post-service-config
|
||||
key: postgres-user
|
||||
- name: POSTGRES_PASS
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: post-service-config
|
||||
key: postgres-pass
|
||||
- name: POSTGRES_DATABASE
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: post-service-config
|
||||
key: postgres-database
|
||||
- name: REDIS_HOST
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: post-service-config
|
||||
key: redis-host
|
||||
- name: REDIS_PASS
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: post-service-config
|
||||
key: redis-pass
|
||||
- name: LOG_LEVEL
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: post-service-config
|
||||
key: log-level
|
||||
- name: KAFKA_BROKERS
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: panels-shared-config
|
||||
key: kafka-brokers
|
||||
resources: {}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: post-service
|
||||
spec:
|
||||
selectors:
|
||||
app: post-service
|
||||
type: ClusterIP
|
||||
ports:
|
||||
- name: grpc
|
||||
port: 9090
|
||||
targetPort: 9090
|
||||
protocol: TCP
|
||||
73
manifests/services-configmap.yaml
Normal file
73
manifests/services-configmap.yaml
Normal file
@@ -0,0 +1,73 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: panels-shared-config
|
||||
data:
|
||||
kafka-brokers: kafka:19092
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: gateway-service-config
|
||||
data:
|
||||
auth-service-address: auth-service:9090
|
||||
comment-service-address: comment-service:9090
|
||||
panel-service-address: panel-service:9090
|
||||
post-service-address: post-service:9090
|
||||
user-service-address: user-service:9090
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: auth-service-config
|
||||
data:
|
||||
password-pepper: 4d0c18c368489d4c0b48c497efb1d6b3
|
||||
postgres-host: host.docker.internal:5434
|
||||
postgres-user: postgres
|
||||
postgres-pass: postgres
|
||||
postgres-database: postgres
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: comment-service-config
|
||||
data:
|
||||
postgres-host: host.docker.internal:5435
|
||||
postgres-user: postgres
|
||||
postgres-pass: postgres
|
||||
postgres-database: postgres
|
||||
redis-host: host.docker.internal:6381
|
||||
redis-pass: redis
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: panel-service-config
|
||||
data:
|
||||
postgres-host: host.docker.internal:5432
|
||||
postgres-user: postgres
|
||||
postgres-pass: postgres
|
||||
postgres-database: postgres
|
||||
redis-host: host.docker.internal:6379
|
||||
redis-pass: redis
|
||||
log-level: info
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: post-service-config
|
||||
data:
|
||||
postgres-host: host.docker.internal:5433
|
||||
postgres-user: postgres
|
||||
postgres-pass: postgres
|
||||
postgres-database: postgres
|
||||
redis-host: host.docker.internal:6380
|
||||
redis-pass: redis
|
||||
log-level: info
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: user-service-config
|
||||
data:
|
||||
mongodb-uri: mongodb://mongo:mongo@host.docker.internal:27017/
|
||||
46
manifests/user-service.yaml
Normal file
46
manifests/user-service.yaml
Normal file
@@ -0,0 +1,46 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: user-service
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: user-service
|
||||
strategy: {}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: user-service
|
||||
spec:
|
||||
containers:
|
||||
- name: user-service
|
||||
image: panels/user-service
|
||||
ports:
|
||||
- containerPort: 9090
|
||||
env:
|
||||
- name: MONGODB_URI
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: user-service-config
|
||||
key: mongodb-uri
|
||||
- name: KAFKA_BROKERS
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: panels-shared-config
|
||||
key: kafka-brokers
|
||||
resources: {}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: user-service
|
||||
spec:
|
||||
selectors:
|
||||
app: user-service
|
||||
type: ClusterIP
|
||||
ports:
|
||||
- name: grpc
|
||||
port: 9090
|
||||
targetPort: 9090
|
||||
protocol: TCP
|
||||
@@ -3,6 +3,7 @@ import type { BaseQueryFn } from '@reduxjs/toolkit/query'
|
||||
|
||||
import { setUnauthed } from './auth'
|
||||
import type { RootState } from '../store'
|
||||
import type { QueryError } from '../types/api';
|
||||
|
||||
const baseQuery = fetchBaseQuery({
|
||||
baseUrl: import.meta.env.VITE_API_URL,
|
||||
@@ -18,7 +19,8 @@ const baseQuery = fetchBaseQuery({
|
||||
}
|
||||
})
|
||||
|
||||
const wrappedBaseQuery: BaseQueryFn = async (args, api, extraOptions) => {
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
const wrappedBaseQuery: BaseQueryFn<any, unknown, QueryError> = async (args, api, extraOptions) => {
|
||||
const result = await baseQuery(args, api, extraOptions)
|
||||
if ((api.getState() as RootState).auth.accessToken && result?.error?.status === 403) {
|
||||
api.dispatch(setUnauthed())
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
import type { FetchBaseQueryError } from '@reduxjs/toolkit/query'
|
||||
|
||||
export type QueryError = FetchBaseQueryError | {
|
||||
data: ErrorResponse;
|
||||
}
|
||||
|
||||
export type RawResponse = {
|
||||
status: string;
|
||||
msg?: string;
|
||||
|
||||
@@ -6,7 +6,7 @@ import LoadingBar from '../components/LoadingBar'
|
||||
import { useAppSelector } from '../app/hooks'
|
||||
import { useGetPanelByNameQuery } from '../app/api/panels'
|
||||
import type { Panel } from '../app/types/common'
|
||||
import type { ErrorResponse } from '../app/types/api'
|
||||
import type { QueryError, ErrorResponse } from '../app/types/api'
|
||||
|
||||
export type PanelContext = {
|
||||
panel: Panel;
|
||||
@@ -63,8 +63,8 @@ function PanelLayout() {
|
||||
} else if (!data) {
|
||||
if (!error) {
|
||||
throw Error('Unknown error occured')
|
||||
} else if ('data' in error) {
|
||||
const errResponse = error.data as ErrorResponse
|
||||
} else if ((error as QueryError).data) {
|
||||
const errResponse = (error as QueryError).data as ErrorResponse
|
||||
if (errResponse.msg) {
|
||||
throw Error(errResponse.msg)
|
||||
} else {
|
||||
|
||||
@@ -7,7 +7,7 @@ import LoadingBar from './LoadingBar'
|
||||
import { User } from '../app/types/common'
|
||||
import { useAppSelector } from '../app/hooks'
|
||||
import { useGetUserByNameQuery } from '../app/api/users'
|
||||
import type { ErrorResponse } from '../app/types/api'
|
||||
import type { ErrorResponse, QueryError } from '../app/types/api'
|
||||
|
||||
export type UserContext = {
|
||||
user: User
|
||||
@@ -40,8 +40,8 @@ function UserLayout() {
|
||||
} else if (!data) {
|
||||
if (!error) {
|
||||
throw Error('Unknown error occured')
|
||||
} else if ('data' in error) {
|
||||
const errResponse = error.data as ErrorResponse
|
||||
} else if ((error as QueryError).data) {
|
||||
const errResponse = (error as QueryError).data as ErrorResponse
|
||||
if (errResponse.msg) {
|
||||
throw Error(errResponse.msg)
|
||||
} else {
|
||||
|
||||
@@ -10,7 +10,7 @@ import LoadingBar from '../components/LoadingBar'
|
||||
import { useAppSelector } from '../app/hooks'
|
||||
import { useGetPanelPostQuery } from '../app/api/posts'
|
||||
import type { PanelContext } from '../components/PanelLayout'
|
||||
import type { ErrorResponse } from '../app/types/api'
|
||||
import type { QueryError, ErrorResponse } from '../app/types/api'
|
||||
import type { Comment } from '../app/types/common'
|
||||
|
||||
type PanelPostPageParams = {
|
||||
@@ -37,8 +37,8 @@ function PanelPostPage() {
|
||||
} else if (!data) {
|
||||
if (!error) {
|
||||
throw Error('Unknown error occured')
|
||||
} else if ('data' in error) {
|
||||
const errResponse = error.data as ErrorResponse
|
||||
} else if ((error as QueryError).data) {
|
||||
const errResponse = (error as QueryError).data as ErrorResponse
|
||||
if (errResponse.msg) {
|
||||
throw Error(errResponse.msg)
|
||||
} else {
|
||||
|
||||
46
skaffold.yaml
Normal file
46
skaffold.yaml
Normal file
@@ -0,0 +1,46 @@
|
||||
apiVersion: skaffold/v3
|
||||
kind: Config
|
||||
metadata:
|
||||
name: panels
|
||||
build:
|
||||
artifacts:
|
||||
- image: panels/auth-service
|
||||
context: services/auth-service
|
||||
docker:
|
||||
dockerfile: Dockerfile
|
||||
- image: panels/comment-service
|
||||
context: services/comment-service
|
||||
docker:
|
||||
dockerfile: Dockerfile
|
||||
- image: panels/frontend
|
||||
context: services/frontend
|
||||
docker:
|
||||
dockerfile: Dockerfile
|
||||
- image: panels/gateway-service
|
||||
context: services/gateway-service
|
||||
docker:
|
||||
dockerfile: Dockerfile
|
||||
- image: panels/panel-service
|
||||
context: services/panel-service
|
||||
docker:
|
||||
dockerfile: Dockerfile
|
||||
- image: panels/post-service
|
||||
context: services/post-service
|
||||
docker:
|
||||
dockerfile: Dockerfile
|
||||
- image: panels/user-service
|
||||
context: services/user-service
|
||||
docker:
|
||||
dockerfile: Dockerfile
|
||||
manifests:
|
||||
rawYaml:
|
||||
- ./manifests/jwtkeys-secret.yaml
|
||||
- ./manifests/services-configmap.yaml
|
||||
- ./manifests/kafka.yaml
|
||||
- ./manifests/frontend.yaml
|
||||
- ./manifests/auth-service.yaml
|
||||
- ./manifests/gateway-service.yaml
|
||||
- ./manifests/panel-service.yaml
|
||||
- ./manifests/post-service.yaml
|
||||
- ./manifests/user-service.yaml
|
||||
- ./manifests/comment-service.yaml
|
||||
Reference in New Issue
Block a user