add appflowy
This commit is contained in:
341
deploy/appflowy/deployment.yaml
Normal file
341
deploy/appflowy/deployment.yaml
Normal file
@@ -0,0 +1,341 @@
|
|||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: gotrue
|
||||||
|
namespace: appflowy
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: gotrue
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: gotrue
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: gotrue
|
||||||
|
image: appflowyinc/gotrue:latest
|
||||||
|
ports:
|
||||||
|
- containerPort: 9999
|
||||||
|
env:
|
||||||
|
# ----- DB (Postgres HA) -----
|
||||||
|
- name: GOTRUE_DB_DRIVER
|
||||||
|
value: postgres
|
||||||
|
- name: DATABASE_URL
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: appflowy-secrets
|
||||||
|
key: GOTRUE_DATABASE_URL
|
||||||
|
- name: GOTRUE_ADMIN_EMAIL
|
||||||
|
value: hello@beatrice.wtf
|
||||||
|
- name: GOTRUE_ADMIN_PASSWORD
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: appflowy-secrets
|
||||||
|
key: GOTRUE_ADMIN_PASSWORD
|
||||||
|
- name: GOTRUE_DISABLE_SIGNUP
|
||||||
|
value: "false"
|
||||||
|
- name: GOTRUE_SITE_URL
|
||||||
|
value: "appflowy-flutter://"
|
||||||
|
- name: GOTRUE_URI_ALLOW_LIST
|
||||||
|
value: "**"
|
||||||
|
- name: GOTRUE_JWT_SECRET
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: appflowy-secrets
|
||||||
|
key: GOTRUE_JWT_SECRET
|
||||||
|
- name: GOTRUE_JWT_EXP
|
||||||
|
value: "7200"
|
||||||
|
- name: GOTRUE_SMTP_HOST
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: appflowy-secrets
|
||||||
|
key: SMTP_HOST
|
||||||
|
- name: GOTRUE_SMTP_PORT
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: appflowy-secrets
|
||||||
|
key: SMTP_PORT
|
||||||
|
- name: GOTRUE_SMTP_USER
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: appflowy-secrets
|
||||||
|
key: SMTP_USER
|
||||||
|
- name: GOTRUE_SMTP_PASS
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: appflowy-secrets
|
||||||
|
key: SMTP_PASS
|
||||||
|
- name: GOTRUE_SMTP_ADMIN_EMAIL
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: appflowy-secrets
|
||||||
|
key: SMTP_ADMIN_EMAIL
|
||||||
|
- name: PORT
|
||||||
|
value: "9999"
|
||||||
|
- name: GOTRUE_JWT_ADMIN_GROUP_NAME
|
||||||
|
value: supabase_admin
|
||||||
|
- name: API_EXTERNAL_URL
|
||||||
|
value: https://appflowy.prod.panic.haus/gotrue
|
||||||
|
- name: GOTRUE_MAILER_URLPATHS_CONFIRMATION
|
||||||
|
value: /gotrue/verify
|
||||||
|
- name: GOTRUE_MAILER_URLPATHS_INVITE
|
||||||
|
value: /gotrue/verify
|
||||||
|
- name: GOTRUE_MAILER_URLPATHS_RECOVERY
|
||||||
|
value: /gotrue/verify
|
||||||
|
- name: GOTRUE_MAILER_URLPATHS_EMAIL_CHANGE
|
||||||
|
value: /gotrue/verify
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: appflowy-cloud
|
||||||
|
namespace: appflowy
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: appflowy-cloud
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: appflowy-cloud
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: appflowy-cloud
|
||||||
|
image: appflowyinc/appflowy_cloud:latest
|
||||||
|
ports:
|
||||||
|
- containerPort: 8000
|
||||||
|
env:
|
||||||
|
# ----- Database -----
|
||||||
|
- name: APPFLOWY_DATABASE_URL
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: appflowy-secrets
|
||||||
|
key: APPFLOWY_DATABASE_URL
|
||||||
|
- name: APPFLOWY_REDIS_URI
|
||||||
|
value: "redis://redis-lb.redis.svc.cluster.local:6379"
|
||||||
|
|
||||||
|
# ----- GoTrue (Auth) -----
|
||||||
|
- name: APPFLOWY_GOTRUE_BASE_URL
|
||||||
|
value: "http://gotrue.appflowy.svc.cluster.local:9999"
|
||||||
|
- name: APPFLOWY_GOTRUE_JWT_SECRET
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: appflowy-secrets
|
||||||
|
key: GOTRUE_JWT_SECRET
|
||||||
|
- name: APPFLOWY_GOTRUE_JWT_EXP
|
||||||
|
value: "7200"
|
||||||
|
|
||||||
|
# ----- S3 / Minio -----
|
||||||
|
- name: APPFLOWY_S3_USE_MINIO
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: appflowy-secrets
|
||||||
|
key: APPFLOWY_S3_USE_MINIO
|
||||||
|
- name: APPFLOWY_S3_MINIO_URL
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: appflowy-secrets
|
||||||
|
key: APPFLOWY_S3_MINIO_URL
|
||||||
|
- name: APPFLOWY_S3_BUCKET
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: appflowy-secrets
|
||||||
|
key: APPFLOWY_S3_BUCKET
|
||||||
|
- name: APPFLOWY_S3_REGION
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: appflowy-secrets
|
||||||
|
key: AWS_REGION
|
||||||
|
- name: APPFLOWY_S3_ACCESS_KEY
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: appflowy-secrets
|
||||||
|
key: AWS_ACCESS_KEY
|
||||||
|
- name: APPFLOWY_S3_SECRET_KEY
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: appflowy-secrets
|
||||||
|
key: AWS_SECRET_KEY
|
||||||
|
#- name: APPFLOWY_S3_PRESIGNED_URL_ENDPOINT
|
||||||
|
# value: "https://minio.example.com"
|
||||||
|
# ← Replace with your actual public Minio endpoint if different
|
||||||
|
|
||||||
|
# ----- Mailer (AppFlowy Cloud) -----
|
||||||
|
- name: APPFLOWY_MAILER_SMTP_HOST
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: appflowy-secrets
|
||||||
|
key: SMTP_HOST
|
||||||
|
- name: APPFLOWY_MAILER_SMTP_PORT
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: appflowy-secrets
|
||||||
|
key: SMTP_PORT
|
||||||
|
- name: APPFLOWY_MAILER_SMTP_USERNAME
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: appflowy-secrets
|
||||||
|
key: SMTP_USER
|
||||||
|
- name: APPFLOWY_MAILER_SMTP_PASSWORD
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: appflowy-secrets
|
||||||
|
key: SMTP_PASS
|
||||||
|
- name: APPFLOWY_MAILER_SMTP_EMAIL
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: appflowy-secrets
|
||||||
|
key: SMTP_USER
|
||||||
|
- name: APPFLOWY_MAILER_SMTP_TLS_KIND
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: appflowy-secrets
|
||||||
|
key: SMTP_TLS_KIND
|
||||||
|
|
||||||
|
# ----- General -----
|
||||||
|
- name: APPFLOWY_ACCESS_CONTROL
|
||||||
|
value: "true"
|
||||||
|
- name: RUST_LOG
|
||||||
|
value: info
|
||||||
|
- name: APPFLOWY_ENVIRONMENT
|
||||||
|
value: production
|
||||||
|
- name: APPFLOWY_WEB_URL
|
||||||
|
value: "https://appflowy.prod.panic.haus" # ← your public AppFlowy URL
|
||||||
|
readinessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /health
|
||||||
|
port: 8000
|
||||||
|
initialDelaySeconds: 10
|
||||||
|
periodSeconds: 10
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /health
|
||||||
|
port: 8000
|
||||||
|
initialDelaySeconds: 20
|
||||||
|
periodSeconds: 20
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: admin-frontend
|
||||||
|
namespace: appflowy
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: admin-frontend
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: admin-frontend
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: admin-frontend
|
||||||
|
image: appflowyinc/admin_frontend:latest
|
||||||
|
ports:
|
||||||
|
- containerPort: 80
|
||||||
|
env:
|
||||||
|
- name: ADMIN_FRONTEND_REDIS_URL
|
||||||
|
value: "redis://redis-lb.redis.svc.cluster.local:6379"
|
||||||
|
- name: ADMIN_FRONTEND_GOTRUE_URL
|
||||||
|
value: "http://gotrue.appflowy.svc.cluster.local:9999"
|
||||||
|
- name: ADMIN_FRONTEND_APPFLOWY_CLOUD_URL
|
||||||
|
value: "http://appflowy-cloud.appflowy.svc.cluster.local:8000"
|
||||||
|
- name: ADMIN_FRONTEND_PATH_PREFIX
|
||||||
|
value: "/console"
|
||||||
|
readinessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /
|
||||||
|
port: 80
|
||||||
|
initialDelaySeconds: 5
|
||||||
|
periodSeconds: 10
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: appflowy-worker
|
||||||
|
namespace: appflowy
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: appflowy-worker
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: appflowy-worker
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: appflowy-worker
|
||||||
|
image: appflowyinc/appflowy_worker:latest
|
||||||
|
env:
|
||||||
|
- name: RUST_LOG
|
||||||
|
value: info
|
||||||
|
- name: APPFLOWY_ENVIRONMENT
|
||||||
|
value: production
|
||||||
|
- name: APPFLOWY_WORKER_REDIS_URL
|
||||||
|
value: "redis://redis-lb.redis.svc.cluster.local:6379"
|
||||||
|
- name: APPFLOWY_WORKER_DATABASE_URL
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: appflowy-secrets
|
||||||
|
key: GOTRUE_DATABASE_URL
|
||||||
|
- name: APPFLOWY_WORKER_DATABASE_NAME
|
||||||
|
value: appflowy_db
|
||||||
|
- name: APPFLOWY_S3_USE_MINIO
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: appflowy-secrets
|
||||||
|
key: APPFLOWY_S3_USE_MINIO
|
||||||
|
- name: APPFLOWY_S3_MINIO_URL
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: appflowy-secrets
|
||||||
|
key: APPFLOWY_S3_MINIO_URL
|
||||||
|
- name: APPFLOWY_S3_ACCESS_KEY
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: appflowy-secrets
|
||||||
|
key: AWS_ACCESS_KEY
|
||||||
|
- name: APPFLOWY_S3_SECRET_KEY
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: appflowy-secrets
|
||||||
|
key: AWS_SECRET_KEY
|
||||||
|
- name: APPFLOWY_S3_BUCKET
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: appflowy-secrets
|
||||||
|
key: APPFLOWY_S3_BUCKET
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: appflowy-web
|
||||||
|
namespace: appflowy
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: appflowy-web
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: appflowy-web
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: appflowy-web
|
||||||
|
image: appflowyinc/appflowy_web:latest
|
||||||
|
ports:
|
||||||
|
- containerPort: 80
|
||||||
|
env:
|
||||||
|
- name: APPFLOWY_CLOUD_URL
|
||||||
|
value: "http://appflowy-cloud.appflowy.svc.cluster.local:8000"
|
||||||
67
deploy/appflowy/ingress.yaml
Normal file
67
deploy/appflowy/ingress.yaml
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
name: appflowy-ingress
|
||||||
|
namespace: appflowy
|
||||||
|
annotations:
|
||||||
|
cert-manager.io/cluster-issuer: "letsencrypt-prod"
|
||||||
|
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
|
||||||
|
nginx.ingress.kubernetes.io/proxy-body-size: "50m"
|
||||||
|
spec:
|
||||||
|
ingressClassName: nginx
|
||||||
|
|
||||||
|
tls:
|
||||||
|
- hosts:
|
||||||
|
- appflowy.prod.panic.haus # ← replace with your public domain
|
||||||
|
secretName: appflowy-tls
|
||||||
|
|
||||||
|
rules:
|
||||||
|
- host: appflowy.prod.panic.haus
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
# ┌──────────────────────────────────────────────────────────────────────────────┐
|
||||||
|
# │ 1) Admin UI (served under /console) │
|
||||||
|
# └──────────────────────────────────────────────────────────────────────────────┘
|
||||||
|
- path: /console
|
||||||
|
pathType: Prefix
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: admin-frontend
|
||||||
|
port:
|
||||||
|
number: 80
|
||||||
|
|
||||||
|
# ┌──────────────────────────────────────────────────────────────────────────────┐
|
||||||
|
# │ 2) GoTrue (auth) – exposed under /gotrue │
|
||||||
|
# └──────────────────────────────────────────────────────────────────────────────┘
|
||||||
|
- path: /gotrue
|
||||||
|
pathType: Prefix
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: gotrue
|
||||||
|
port:
|
||||||
|
number: 9999
|
||||||
|
|
||||||
|
# ┌──────────────────────────────────────────────────────────────────────────────┐
|
||||||
|
# │ 3) AppFlowy-Cloud API & Web │
|
||||||
|
# • If you want API served on /api, and the static Web on / │
|
||||||
|
# • You could also send all traffic to appflowy-web and let it call │
|
||||||
|
# • the backend at /api internally. │
|
||||||
|
# └──────────────────────────────────────────────────────────────────────────────┘
|
||||||
|
|
||||||
|
# a) Direct all `/api/*` calls to the backend service
|
||||||
|
- path: /api
|
||||||
|
pathType: Prefix
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: appflowy-cloud
|
||||||
|
port:
|
||||||
|
number: 8000
|
||||||
|
|
||||||
|
# b) Everything else (root path) → appflowy-web (static UI)
|
||||||
|
- path: /
|
||||||
|
pathType: Prefix
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: appflowy-web
|
||||||
|
port:
|
||||||
|
number: 80
|
||||||
10
deploy/appflowy/kustomization.yaml
Normal file
10
deploy/appflowy/kustomization.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
|
||||||
|
namespace: appflowy
|
||||||
|
|
||||||
|
resources:
|
||||||
|
- secret.yaml
|
||||||
|
- deployment.yaml
|
||||||
|
- service.yaml
|
||||||
|
- ingress.yaml
|
||||||
45
deploy/appflowy/secret.yaml
Normal file
45
deploy/appflowy/secret.yaml
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: appflowy-secrets
|
||||||
|
namespace: appflowy
|
||||||
|
stringData:
|
||||||
|
FQDN: "appflowy.prod.panic.haus"
|
||||||
|
SCHEME: "https"
|
||||||
|
APPFLOWY_BASE_URL: "https://appflowy.prod.panic.haus"
|
||||||
|
APPFLOWY_WEB_URL: "https://appflowy.prod.panic.haus"
|
||||||
|
|
||||||
|
# ==== PostgreSQL credentials ====
|
||||||
|
GOTRUE_DATABASE_URL: "postgres://appflowy:AjUIkz5lcaEGpCrO9KHYAvaKbLsH2Q0e@postgres-base-rw.postgres.svc.cluster.local:5432/appflowy_db?search_path=auth"
|
||||||
|
APPFLOWY_DATABASE_URL: "postgres://appflowy:AjUIkz5lcaEGpCrO9KHYAvaKbLsH2Q0e@postgres-base-rw.postgres.svc.cluster.local:5432/appflowy_db"
|
||||||
|
|
||||||
|
# ==== GoTrue (Auth) keys ====
|
||||||
|
GOTRUE_JWT_SECRET: "5IqQzMmpRPoeParMsgoWIphrCYdhFhxz9NSyEQYlwGyTrRSsjInyMSaM44ZCH"
|
||||||
|
GOTRUE_ADMIN_PASSWORD: "KaTPKUXiDUVIcUYWjqSy5SFdqrIl5csS"
|
||||||
|
|
||||||
|
# ==== Minio (S3) ====
|
||||||
|
APPFLOWY_S3_MINIO_URL: "https://s3.minio.panic.haus"
|
||||||
|
MINIO_HOST: "s3.minio.panic.haus"
|
||||||
|
MINIO_PORT: "443"
|
||||||
|
AWS_ACCESS_KEY: "rjtPFRp52DgmWb4kdsyiFKjtBMxYSaow" # must match your Minio secret
|
||||||
|
AWS_SECRET_KEY: "kabSK8RXcONjO8I7GNfJ03WMueJ7fk6z" # must match your Minio secret
|
||||||
|
APPFLOWY_S3_BUCKET: "appflowy" # your bucket name
|
||||||
|
APPFLOWY_S3_USE_MINIO: "true"
|
||||||
|
# If you use AWS S3 instead of Minio, set APPFLOWY_S3_CREATE_BUCKET / AWS_REGION here.
|
||||||
|
# APPFLOWY_S3_REGION: cluster-panic-haus
|
||||||
|
|
||||||
|
# ==== GoTrue SMTP (optional) ====
|
||||||
|
SMTP_HOST: "mail.mind-overflow.net"
|
||||||
|
SMTP_PORT: "465"
|
||||||
|
SMTP_USER: "cloud@mind-overflow.net"
|
||||||
|
SMTP_PASS: "PcYchuLLUyfT2gvY4Tx7wQ575Tnqjx84zVNoP6Mb"
|
||||||
|
SMTP_ADMIN_EMAIL: "hello@beatrice.wtf"
|
||||||
|
|
||||||
|
# ==== AppFlowy Mailer (Cloud) ====
|
||||||
|
SMTP_EMAIL: "cloud@mind-overflow.net"
|
||||||
|
SMTP_TLS_KIND: "wrapper" # "none" "wrapper" "required" "opportunistic"
|
||||||
|
|
||||||
|
# ==== Additional secrets for AppFlowy AI (if used) ====
|
||||||
|
AI_OPENAI_API_KEY: ""
|
||||||
|
|
||||||
|
# (Optional) any other secrets you need can go here.
|
||||||
95
deploy/appflowy/service.yaml
Normal file
95
deploy/appflowy/service.yaml
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: gotrue
|
||||||
|
namespace: appflowy
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- port: 9999
|
||||||
|
targetPort: 9999
|
||||||
|
protocol: TCP
|
||||||
|
name: http
|
||||||
|
selector:
|
||||||
|
app: gotrue
|
||||||
|
type: ClusterIP
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: appflowy-cloud
|
||||||
|
namespace: appflowy
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- port: 8000
|
||||||
|
targetPort: 8000
|
||||||
|
protocol: TCP
|
||||||
|
name: http
|
||||||
|
selector:
|
||||||
|
app: appflowy-cloud
|
||||||
|
type: ClusterIP
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: admin-frontend
|
||||||
|
namespace: appflowy
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- port: 80
|
||||||
|
targetPort: 80
|
||||||
|
protocol: TCP
|
||||||
|
name: http
|
||||||
|
selector:
|
||||||
|
app: admin-frontend
|
||||||
|
type: ClusterIP
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: appflowy-worker
|
||||||
|
namespace: appflowy
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- port: 8081
|
||||||
|
targetPort: 8081
|
||||||
|
protocol: TCP
|
||||||
|
name: http
|
||||||
|
selector:
|
||||||
|
app: appflowy-worker
|
||||||
|
type: ClusterIP
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: appflowy-web
|
||||||
|
namespace: appflowy
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- port: 80
|
||||||
|
targetPort: 80
|
||||||
|
protocol: TCP
|
||||||
|
name: http
|
||||||
|
selector:
|
||||||
|
app: appflowy-web
|
||||||
|
type: ClusterIP
|
||||||
|
|
||||||
|
# (If you added appflowy-ai)
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: appflowy-ai
|
||||||
|
namespace: appflowy
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- port: 5001
|
||||||
|
targetPort: 5001
|
||||||
|
protocol: TCP
|
||||||
|
name: http
|
||||||
|
selector:
|
||||||
|
app: appflowy-ai
|
||||||
|
type: ClusterIP
|
||||||
Reference in New Issue
Block a user