feat: add migration script and update Helm values for various services with readiness and liveness probes

Signed-off-by: zhenyus <zhenyus@mathmast.com>
This commit is contained in:
zhenyus 2025-03-22 01:03:59 +08:00
parent bf34f4cd90
commit 6e7417ae00
11 changed files with 244 additions and 22 deletions

View File

@ -1,6 +1,6 @@
global: global:
defaultStorageClass: "freeleaps-node-local" defaultStorageClass: "azure-disk-std-lrs"
storageClass: "freeleaps-node-local" storageClass: "azure-disk-std-lrs"
security: security:
allowInsecureImages: false allowInsecureImages: false
image: image:
@ -224,7 +224,7 @@ persistence:
accessModes: accessModes:
- ReadWriteOnce - ReadWriteOnce
mountPath: /opt/bitnami/rabbitmq/.rabbitmq/mnesia mountPath: /opt/bitnami/rabbitmq/.rabbitmq/mnesia
size: 8Gi size: 5Gi
service: service:
type: ClusterIP type: ClusterIP
portEnabled: true portEnabled: true
@ -328,7 +328,7 @@ metrics:
ingress: ingress:
enabled: true enabled: true
path: / path: /
pathType: ImplementationSpecific pathType: Prefix
hostname: alpha.rabbitmq.freeleaps.mathmast.com hostname: alpha.rabbitmq.freeleaps.mathmast.com
tls: true tls: true
existingSecret: "alpha.rabbitmq.freeleaps.mathmast.com-cert" existingSecret: "alpha.rabbitmq.freeleaps.mathmast.com-cert"

View File

@ -2,6 +2,8 @@ global:
registry: docker.io registry: docker.io
repository: freeleaps repository: freeleaps
nodeSelector: {} nodeSelector: {}
dashboard:
enabled: false
authentication: authentication:
replicas: 1 replicas: 1
image: image:
@ -19,14 +21,37 @@ authentication:
cpu: '50m' cpu: '50m'
memory: 64Mi memory: 64Mi
limits: limits:
cpu: '100m' cpu: '200m'
memory: 128Mi memory: 128Mi
probes: {} probes:
readiness:
type: httpGet
config:
path: /api/_/readyz
port: 8004
initialDelaySeconds: 5
periodSeconds: 30
timeoutSeconds: 3
successThreshold: 1
failureThreshold: 3
liveness:
type: httpGet
config:
path: /api/_/livez
port: 8004
initialDelaySeconds: 5
periodSeconds: 15
timeoutSeconds: 3
successThreshold: 1
failureThreshold: 3
terminationGracePeriodSeconds: 30
services: services:
- name: authentication-service - name: authentication-service
type: ClusterIP type: ClusterIP
port: 8004 port: 8004
targetPort: 8004 targetPort: 8004
serviceMonitor:
enabled: false
ingresses: ingresses:
- name: authentication-ingress - name: authentication-ingress
host: alpha.authentication.freeleaps.mathmast.com host: alpha.authentication.freeleaps.mathmast.com
@ -57,3 +82,5 @@ authentication:
mongodbName: freeleaps2 mongodbName: freeleaps2
mongodbPort: 27017 mongodbPort: 27017
mongodbUri: mongodb://freeleaps-alpha-mongo-mongodb.freeleaps-alpha.svc.freeleaps.cluster:27017/ mongodbUri: mongodb://freeleaps-alpha-mongo-mongodb.freeleaps-alpha.svc.freeleaps.cluster:27017/
metricsEnabled: "false"
probesEnabled: "true"

View File

@ -2,6 +2,8 @@ global:
registry: docker.io registry: docker.io
repository: freeleaps repository: freeleaps
nodeSelector: {} nodeSelector: {}
dashboard:
enabled: false
centralStorage: centralStorage:
replicas: 1 replicas: 1
image: image:
@ -19,14 +21,37 @@ centralStorage:
cpu: '50m' cpu: '50m'
memory: 64Mi memory: 64Mi
limits: limits:
cpu: '100m' cpu: '200m'
memory: 128Mi memory: 128Mi
probes: {} probes:
readiness:
type: httpGet
config:
path: /api/_/readyz
port: 8005
initialDelaySeconds: 5
periodSeconds: 30
timeoutSeconds: 3
successThreshold: 1
failureThreshold: 3
liveness:
type: httpGet
config:
path: /api/_/livez
port: 8005
initialDelaySeconds: 5
periodSeconds: 15
timeoutSeconds: 3
successThreshold: 1
failureThreshold: 3
terminationGracePeriodSeconds: 30
services: services:
- name: central-storage-service - name: central-storage-service
type: ClusterIP type: ClusterIP
port: 8005 port: 8005
targetPort: 8005 targetPort: 8005
serviceMonitor:
enabled: false
ingresses: ingresses:
- name: central-storage-ingress - name: central-storage-ingress
host: alpha.central-storage.freeleaps.mathmast.com host: alpha.central-storage.freeleaps.mathmast.com
@ -55,3 +80,5 @@ centralStorage:
mongodbUri: mongodb://freeleaps-alpha-mongo-mongodb.freeleaps-alpha.svc.freeleaps.cluster:27017/ mongodbUri: mongodb://freeleaps-alpha-mongo-mongodb.freeleaps-alpha.svc.freeleaps.cluster:27017/
azureStorageDocumentApiKey: xbiFtFeQ6v5dozgVM99fZ9huUomL7QcLu6s0y8zYHtIXZ8XdneKDMcg4liQr/9oNlVoRFcZhWjLY+ASt9cjICQ== azureStorageDocumentApiKey: xbiFtFeQ6v5dozgVM99fZ9huUomL7QcLu6s0y8zYHtIXZ8XdneKDMcg4liQr/9oNlVoRFcZhWjLY+ASt9cjICQ==
azureStorageDocumentApiEndpoint: https://freeleaps1document.blob.core.windows.net/ azureStorageDocumentApiEndpoint: https://freeleaps1document.blob.core.windows.net/
metricsEnabled: "false"
probesEnabled: "true"

View File

@ -2,6 +2,8 @@ global:
registry: docker.io registry: docker.io
repository: freeleaps repository: freeleaps
nodeSelector: {} nodeSelector: {}
dashbaord:
enabled: false
chat: chat:
replicas: 1 replicas: 1
image: image:
@ -21,12 +23,35 @@ chat:
limits: limits:
cpu: '200m' cpu: '200m'
memory: 128Mi memory: 128Mi
probes: {} probes:
readiness:
type: httpGet
config:
path: /api/_/readyz
port: 8012
initialDelaySeconds: 5
periodSeconds: 30
timeoutSeconds: 3
successThreshold: 1
failureThreshold: 3
liveness:
type: httpGet
config:
path: /api/_/livez
port: 8012
initialDelaySeconds: 5
periodSeconds: 15
timeoutSeconds: 3
successThreshold: 1
failureThreshold: 3
terminationGracePeriodSeconds: 30
services: services:
- name: chat-service - name: chat-service
type: ClusterIP type: ClusterIP
port: 8012 port: 8012
targetPort: 8012 targetPort: 8012
serviceMonitor:
enabled: false
ingresses: ingresses:
- name: chat-ingress - name: chat-ingress
host: alpha.chat.freeleaps.mathmast.com host: alpha.chat.freeleaps.mathmast.com
@ -64,13 +89,15 @@ chat:
rabbitmqPort: 5672 rabbitmqPort: 5672
rabbitmqUsername: user rabbitmqUsername: user
rabbitmqPassword: 9dPrkjD8KENevfjT rabbitmqPassword: 9dPrkjD8KENevfjT
freeleapsDevsvcEndpoint: https://alpha.devsvc.freeleaps.mathmast.com freeleapsDevsvcEndpoint: http://devsvc-service.freeleaps-alpha.svc.freeleaps.cluster:8007/api/devsvc/
freeleapsContentEndpoint: https://alpha.content.freeleaps.mathmast.com freeleapsContentEndpoint: http://content-service.freeleaps-alpha.svc.freeleaps.cluster:8013/api/content/
freeleapsCentralStorageEndpoint: https://alpha.central-storage.freeleaps.mathmast.com freeleapsCentralStorageEndpoint: http://central-storage-service.freeleaps-alpha.svc.freeleaps.cluster:8005/api/central_storage/
freeleapsChatEndpoint: https://alpha.chat.freeleaps.mathmast.com freeleapsChatEndpoint: http://chat-service.freeleaps-alpha.svc.freeleaps.cluster:8012/api/chat/
freeleapsPaymentEndpoint: https://alpha.payment.freeleaps.mathmast.com freeleapsPaymentEndpoint: http://payment-service.freeleaps-alpha.svc.freeleaps.cluster:8006/api/payment/
freeleapsAilabEndpoint: '' freeleapsAilabEndpoint: ''
freeleapsEnv: alpha freeleapsEnv: alpha
certPath: '' certPath: ''
redisUrl: redis://:4sTqfZvUwR@freeleaps-alpha-redis-headless.freeleaps-alpha.svc.freeleaps.cluster:6379/0 redisUrl: redis://:4sTqfZvUwR@freeleaps-alpha-redis-headless.freeleaps-alpha.svc.freeleaps.cluster:6379/0
redisIsCluster: "false" redisIsCluster: "false"
metricsEnabled: "false"
probesEnabled: "true"

View File

@ -2,6 +2,8 @@ global:
registry: docker.io registry: docker.io
repository: freeleaps repository: freeleaps
nodeSelector: {} nodeSelector: {}
dashboard:
enabled: false
content: content:
replicas: 1 replicas: 1
image: image:
@ -19,14 +21,37 @@ content:
cpu: 50m cpu: 50m
memory: 64Mi memory: 64Mi
limits: limits:
cpu: 100m cpu: 200m
memory: 128Mi memory: 128Mi
probes: {} probes:
readiness:
type: httpGet
config:
path: /api/_/readyz
port: 8013
initialDelaySeconds: 5
periodSeconds: 30
timeoutSeconds: 3
successThreshold: 1
failureThreshold: 3
liveness:
type: httpGet
config:
path: /api/_/livez
port: 8013
initialDelaySeconds: 5
periodSeconds: 15
timeoutSeconds: 3
successThreshold: 1
failureThreshold: 3
terminationGracePeriodSeconds: 30
services: services:
- name: content-service - name: content-service
type: ClusterIP type: ClusterIP
port: 8013 port: 8013
targetPort: 8013 targetPort: 8013
serviceMonitor:
enabled: false
ingresses: ingresses:
- name: content-ingress - name: content-ingress
host: alpha.content.freeleaps.mathmast.com host: alpha.content.freeleaps.mathmast.com
@ -55,3 +80,5 @@ content:
mongodbUri: mongodb://freeleaps-alpha-mongo-mongodb.freeleaps-alpha.svc.freeleaps.cluster:27017/ mongodbUri: mongodb://freeleaps-alpha-mongo-mongodb.freeleaps-alpha.svc.freeleaps.cluster:27017/
freeleapsWwwAsAzureClientSecret: jTu8Q~WceiK-5dfZB44Ww-K4fVGi3_5tHNWYYbdX freeleapsWwwAsAzureClientSecret: jTu8Q~WceiK-5dfZB44Ww-K4fVGi3_5tHNWYYbdX
centralStorageWebapiUrlBase: http://central-storage-service.freeleaps-alpha.svc.freeleaps.cluster:8005/api/central_storage centralStorageWebapiUrlBase: http://central-storage-service.freeleaps-alpha.svc.freeleaps.cluster:8005/api/central_storage
metricsEnabled: "false"
probesEnabled: "true"

View File

@ -2,6 +2,8 @@ global:
registry: docker.io registry: docker.io
repository: freeleaps repository: freeleaps
nodeSelector: {} nodeSelector: {}
dashboard:
enabled: false
devsvc: devsvc:
replicas: 1 replicas: 1
image: image:
@ -19,14 +21,37 @@ devsvc:
cpu: '50m' cpu: '50m'
memory: 64Mi memory: 64Mi
limits: limits:
cpu: '100m' cpu: '200m'
memory: 128Mi memory: 128Mi
probes: {} probes:
readiness:
type: httpGet
config:
path: /api/_/readyz
port: 8007
initialDelaySeconds: 5
periodSeconds: 30
timeoutSeconds: 3
successThreshold: 1
failureThreshold: 3
liveness:
type: httpGet
config:
path: /api/_/livez
port: 8007
initialDelaySeconds: 5
periodSeconds: 15
timeoutSeconds: 3
successThreshold: 1
failureThreshold: 3
terminationGracePeriodSeconds: 30
services: services:
- name: devsvc-service - name: devsvc-service
type: ClusterIP type: ClusterIP
port: 8007 port: 8007
targetPort: 8007 targetPort: 8007
serviceMonitor:
enabled: false
ingresses: ingresses:
- name: devsvc-ingress - name: devsvc-ingress
host: alpha.devsvc.freeleaps.mathmast.com host: alpha.devsvc.freeleaps.mathmast.com
@ -52,9 +77,11 @@ devsvc:
serviceApiAccessPort: 8007 serviceApiAccessPort: 8007
mongodbName: freeleaps2 mongodbName: freeleaps2
mongodbUri: mongodb://freeleaps-alpha-mongo-mongodb.freeleaps-alpha.svc.freeleaps.cluster:27017/ mongodbUri: mongodb://freeleaps-alpha-mongo-mongodb.freeleaps-alpha.svc.freeleaps.cluster:27017/
giteaToken: 96eec0225f0b505a6ef04c14c4d03aea26f6364a giteaToken: 65bc8b16705414abbdaf8e6262ad698015ce49d9
giteaUrl: http://freeleaps-alpha-gitea-http.freeleaps-alpha.svc.freeleaps.cluster:3000 giteaUrl: http://freeleaps-alpha-gitea-http.freeleaps-alpha.svc.freeleaps.cluster:3000
giteaDepotOrganization: products giteaDepotOrganization: products
codeDepotHttpPort: 443 codeDepotHttpPort: 443
codeDepotSshPort: 22 codeDepotSshPort: 22
codeDepotDomainName: 'https://alpha.freeleaps.mathmast.com' codeDepotDomainName: alpha.gitea.freeleaps.mathmast.com
metricsEnabled: "false"
probesEnabled: "true"

View File

@ -2,6 +2,8 @@ global:
registry: docker.io registry: docker.io
repository: freeleaps repository: freeleaps
nodeSelector: {} nodeSelector: {}
dashboard:
enabled: false
freeleaps: freeleaps:
replicas: 1 replicas: 1
image: image:
@ -27,6 +29,8 @@ freeleaps:
type: ClusterIP type: ClusterIP
port: 8001 port: 8001
targetPort: 8001 targetPort: 8001
serviceMonitor:
enabled: false
ingresses: ingresses:
- name: freeleaps-ingress - name: freeleaps-ingress
host: alpha.api.freeleaps.mathmast.com host: alpha.api.freeleaps.mathmast.com
@ -75,3 +79,5 @@ freeleaps:
certPath: '' certPath: ''
redisUrl: "redis://r6Y@QTb*7BQN@hDGsN@freeleaps-prod-redis-redis-cluster-headless.freeleaps-prod.svc.freeleaps.cluster:6379/0" redisUrl: "redis://r6Y@QTb*7BQN@hDGsN@freeleaps-prod-redis-redis-cluster-headless.freeleaps-prod.svc.freeleaps.cluster:6379/0"
redisIsCluster: "true" redisIsCluster: "true"
metricsEnabled: "false"
probesEnabled: "true"

View File

@ -45,6 +45,20 @@ frontend:
name: mathmast-dot-com name: mathmast-dot-com
kind: ClusterIssuer kind: ClusterIssuer
name: alpha.freeleaps.mathmast.com-cert name: alpha.freeleaps.mathmast.com-cert
annotations:
nginx.ingress.kubernetes.io/proxy-read-timeout: '3600'
nginx.ingress.kubernetes.io/proxy-send-timeout: '3600'
nginx.ingress.kubernetes.io/server-snippets: |-
location / {
proxy_set_header Upgrade $http_upgrade;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_set_header Connection "upgrade";
proxy_cache_bypass $http_upgrade;
}
configs: configs:
tz: UTC tz: UTC
frontendPort: 8080 frontendPort: 8080

View File

@ -2,6 +2,8 @@ global:
registry: docker.io registry: docker.io
repository: freeleaps repository: freeleaps
nodeSelector: {} nodeSelector: {}
dashboard:
enabled: false
notification: notification:
replicas: 1 replicas: 1
image: image:
@ -21,12 +23,35 @@ notification:
limits: limits:
cpu: 100m cpu: 100m
memory: 128Mi memory: 128Mi
probes: {} probes:
readiness:
type: httpGet
config:
path: /api/_/readyz
port: 8003
initialDelaySeconds: 5
periodSeconds: 30
timeoutSeconds: 3
successThreshold: 1
failureThreshold: 3
liveness:
type: httpGet
config:
path: /api/_/livez
port: 8003
initialDelaySeconds: 5
periodSeconds: 15
timeoutSeconds: 3
successThreshold: 1
failureThreshold: 3
terminationGracePeriodSeconds: 30
services: services:
- name: notification-service - name: notification-service
type: ClusterIP type: ClusterIP
port: 8003 port: 8003
targetPort: 8003 targetPort: 8003
serviceMonitor:
enabled: false
ingresses: ingresses:
- name: notification-ingress - name: notification-ingress
host: alpha.notification.freeleaps.mathmast.com host: alpha.notification.freeleaps.mathmast.com
@ -62,3 +87,5 @@ notification:
sendgridApiKey: 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 sendgridApiKey: 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
twilioAccountSid: ACf8c9283a6acda060258eadb29be58bc8 twilioAccountSid: ACf8c9283a6acda060258eadb29be58bc8
twilioAuthToken: ef160748cc22c8b7195b49df4b8eca7e twilioAuthToken: ef160748cc22c8b7195b49df4b8eca7e
metricsEnabled: "false"
probesEnabled: "true"

View File

@ -2,6 +2,8 @@ global:
registry: docker.io registry: docker.io
repository: freeleaps repository: freeleaps
nodeSelector: {} nodeSelector: {}
dashboard:
enabled: false
payment: payment:
replicas: 1 replicas: 1
image: image:
@ -21,12 +23,35 @@ payment:
limits: limits:
cpu: 100m cpu: 100m
memory: 128Mi memory: 128Mi
probes: {} probes:
readiness:
type: httpGet
config:
path: /api/_/readyz
port: 8006
initialDelaySeconds: 5
periodSeconds: 30
timeoutSeconds: 3
successThreshold: 1
failureThreshold: 3
liveness:
type: httpGet
config:
path: /api/_/livez
port: 8006
initialDelaySeconds: 5
periodSeconds: 15
timeoutSeconds: 3
successThreshold: 1
failureThreshold: 3
terminationGracePeriodSeconds: 30
services: services:
- name: payment-service - name: payment-service
type: ClusterIP type: ClusterIP
port: 8006 port: 8006
targetPort: 8006 targetPort: 8006
serviceMonitor:
enabled: false
ingresses: ingresses:
- name: payment-ingress - name: payment-ingress
host: alpha.payment.freeleaps.mathmast.com host: alpha.payment.freeleaps.mathmast.com
@ -54,3 +79,6 @@ payment:
mongodbPort: 27017 mongodbPort: 27017
mongodbUri: mongodb://freeleaps-alpha-mongo-mongodb.freeleaps-alpha.svc.freeleaps.cluster:27017/ mongodbUri: mongodb://freeleaps-alpha-mongo-mongodb.freeleaps-alpha.svc.freeleaps.cluster:27017/
stripeApiKey: sk_test_51Ogsw5B0IyqaSJBrwczlr820jnmvA1qQQGoLZ2XxOsIzikpmXo4pRLjw4XVMTEBR8DdVTYySiAv1XX53Zv5xqynF00GfMqttFd stripeApiKey: sk_test_51Ogsw5B0IyqaSJBrwczlr820jnmvA1qQQGoLZ2XxOsIzikpmXo4pRLjw4XVMTEBR8DdVTYySiAv1XX53Zv5xqynF00GfMqttFd
siteUrlRoot: https://alpha.freeleaps.mathmast.com
metricsEnabled: "false"
probesEnabled: "true"

12
migrate.dsl Normal file
View File

@ -0,0 +1,12 @@
LOAD DATABASE
FROM '/tmp/gitea-alpha.db'
INTO postgresql://gitea:r8sA8CPHD9!bt6d@localhost:5432/gitea
WITH data only,
include no drop,
create no tables,
create no indexes,
no truncate,
batch rows = 1
excluding table names like 'app_state','oauth2_application','oauth2_authorization_code','oauth2_grant','system_setting','version';