---kind: ServiceapiVersion: v1metadata: namespace: ${ZED_KUBE_NAMESPACE} name: postgrest annotations: service.beta.kubernetes.io/do-loadbalancer-name: "postgrest-${ZED_KUBE_NAMESPACE}" service.beta.kubernetes.io/do-loadbalancer-tls-ports: "443" service.beta.kubernetes.io/do-loadbalancer-certificate-id: ${ZED_DO_CERTIFICATE_ID} service.beta.kubernetes.io/do-loadbalancer-disable-lets-encrypt-dns-records: "true"spec: type: LoadBalancer selector: app: nginx ports: - name: web protocol: TCP port: 443 targetPort: 8080 ---apiVersion: apps/v1kind: Deploymentmetadata: namespace: ${ZED_KUBE_NAMESPACE} name: nginxspec: replicas: 1 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:latest ports: - containerPort: 8080 protocol: TCP volumeMounts: - name: nginx-config mountPath: /etc/nginx/nginx.conf subPath: nginx.conf volumes: - name: nginx-config configMap: name: nginx-config ---apiVersion: v1kind: ConfigMapmetadata: namespace: ${ZED_KUBE_NAMESPACE} name: nginx-configdata: nginx.conf: | events {} http { server { listen 8080; location /app/ { proxy_pass http://postgrest-app:8080/; } location /llm/ { proxy_pass http://postgrest-llm:8080/; } } } ---apiVersion: v1kind: Servicemetadata: namespace: ${ZED_KUBE_NAMESPACE} name: postgrest-appspec: selector: app: postgrest-app ports: - protocol: TCP port: 8080 targetPort: 8080 ---apiVersion: v1kind: Servicemetadata: namespace: ${ZED_KUBE_NAMESPACE} name: postgrest-llmspec: selector: app: postgrest-llm ports: - protocol: TCP port: 8080 targetPort: 8080 ---apiVersion: apps/v1kind: Deploymentmetadata: namespace: ${ZED_KUBE_NAMESPACE} name: postgrest-appspec: replicas: 1 selector: matchLabels: app: postgrest-app template: metadata: labels: app: postgrest-app spec: containers: - name: postgrest image: "postgrest/postgrest" ports: - containerPort: 8080 protocol: TCP env: - name: PGRST_SERVER_PORT value: "8080" - name: PGRST_DB_URI valueFrom: secretKeyRef: name: database key: url - name: PGRST_JWT_SECRET valueFrom: secretKeyRef: name: postgrest key: jwt_secret ---apiVersion: apps/v1kind: Deploymentmetadata: namespace: ${ZED_KUBE_NAMESPACE} name: postgrest-llmspec: replicas: 1 selector: matchLabels: app: postgrest-llm template: metadata: labels: app: postgrest-llm spec: containers: - name: postgrest image: "postgrest/postgrest" ports: - containerPort: 8080 protocol: TCP env: - name: PGRST_SERVER_PORT value: "8080" - name: PGRST_DB_URI valueFrom: secretKeyRef: name: llm-database key: url - name: PGRST_JWT_SECRET valueFrom: secretKeyRef: name: postgrest key: jwt_secret
---
kind: Service
apiVersion: v1
metadata:
namespace: ${ZED_KUBE_NAMESPACE}
name: postgrest
annotations:
service.beta.kubernetes.io/do-loadbalancer-name: "postgrest-${ZED_KUBE_NAMESPACE}"
service.beta.kubernetes.io/do-loadbalancer-tls-ports: "443"
service.beta.kubernetes.io/do-loadbalancer-certificate-id: ${ZED_DO_CERTIFICATE_ID}
service.beta.kubernetes.io/do-loadbalancer-disable-lets-encrypt-dns-records: "true"
spec:
type: LoadBalancer
selector:
app: nginx
ports:
- name: web
protocol: TCP
port: 443
targetPort: 8080
---
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: ${ZED_KUBE_NAMESPACE}
name: nginx
spec:
replicas: 1
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 8080
protocol: TCP
volumeMounts:
- name: nginx-config
mountPath: /etc/nginx/nginx.conf
subPath: nginx.conf
volumes:
- name: nginx-config
configMap:
name: nginx-config
---
apiVersion: v1
kind: ConfigMap
metadata:
namespace: ${ZED_KUBE_NAMESPACE}
name: nginx-config
data:
nginx.conf: |
events {}
http {
server {
listen 8080;
location /app/ {
proxy_pass http://postgrest-app:8080/;
}
location /llm/ {
proxy_pass http://postgrest-llm:8080/;
}
}
}
---
apiVersion: v1
kind: Service
metadata:
namespace: ${ZED_KUBE_NAMESPACE}
name: postgrest-app
spec:
selector:
app: postgrest-app
ports:
- protocol: TCP
port: 8080
targetPort: 8080
---
apiVersion: v1
kind: Service
metadata:
namespace: ${ZED_KUBE_NAMESPACE}
name: postgrest-llm
spec:
selector:
app: postgrest-llm
ports:
- protocol: TCP
port: 8080
targetPort: 8080
---
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: ${ZED_KUBE_NAMESPACE}
name: postgrest-app
spec:
replicas: 1
selector:
matchLabels:
app: postgrest-app
template:
metadata:
labels:
app: postgrest-app
spec:
containers:
- name: postgrest
image: "postgrest/postgrest"
ports:
- containerPort: 8080
protocol: TCP
env:
- name: PGRST_SERVER_PORT
value: "8080"
- name: PGRST_DB_URI
valueFrom:
secretKeyRef:
name: database
key: url
- name: PGRST_JWT_SECRET
valueFrom:
secretKeyRef:
name: postgrest
key: jwt_secret
---
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: ${ZED_KUBE_NAMESPACE}
name: postgrest-llm
spec:
replicas: 1
selector:
matchLabels:
app: postgrest-llm
template:
metadata:
labels:
app: postgrest-llm
spec:
containers:
- name: postgrest
image: "postgrest/postgrest"
ports:
- containerPort: 8080
protocol: TCP
env:
- name: PGRST_SERVER_PORT
value: "8080"
- name: PGRST_DB_URI
valueFrom:
secretKeyRef:
name: llm-database
key: url
- name: PGRST_JWT_SECRET
valueFrom:
secretKeyRef:
name: postgrest
key: jwt_secret