108 lines
3.3 KiB
YAML
108 lines
3.3 KiB
YAML
# 2026-03-18
|
||
# funcs-service.yaml — глобальный сервис листинга функций для всех пользователей.
|
||
# Развёртывается ОДИН РАЗ в namespace sless рядом с оператором.
|
||
# Доступен по: https://sless.kube5s.ru/funcs (с Bearer токеном пользователя)
|
||
#
|
||
# Обновить образ и применить:
|
||
# docker push naeel/sless-funcs-service:v0.1.0
|
||
# kubectl apply -f deployments/k8s/funcs-service.yaml
|
||
|
||
---
|
||
apiVersion: apps/v1
|
||
kind: Deployment
|
||
metadata:
|
||
name: sless-funcs-service
|
||
namespace: sless
|
||
labels:
|
||
app: sless-funcs-service
|
||
spec:
|
||
replicas: 1
|
||
selector:
|
||
matchLabels:
|
||
app: sless-funcs-service
|
||
template:
|
||
metadata:
|
||
labels:
|
||
app: sless-funcs-service
|
||
spec:
|
||
containers:
|
||
- name: funcs
|
||
image: naeel/sless-funcs-service:v0.1.6
|
||
ports:
|
||
- containerPort: 8090
|
||
env:
|
||
- name: SLESS_OPERATOR_URL
|
||
value: "http://sless-operator.sless.svc.cluster.local:9090"
|
||
- name: SLESS_EXTERNAL_URL
|
||
value: "https://sless.kube5s.ru"
|
||
# Системные функции, скрытые из листинга
|
||
- name: SLESS_EXCLUDE
|
||
value: "event-writer,event-monitor,event-cleaner"
|
||
# Токен сервиса задаётся через kubectl set env или Secret — не хранится в репо
|
||
# kubectl set env deployment/sless-funcs-service -n sless SLESS_SERVICE_TOKEN="$(cat secrets/test.token)"
|
||
- name: PORT
|
||
value: "8090"
|
||
livenessProbe:
|
||
httpGet:
|
||
path: /health
|
||
port: 8090
|
||
initialDelaySeconds: 5
|
||
periodSeconds: 30
|
||
readinessProbe:
|
||
httpGet:
|
||
path: /health
|
||
port: 8090
|
||
initialDelaySeconds: 3
|
||
periodSeconds: 10
|
||
resources:
|
||
requests:
|
||
cpu: 10m
|
||
memory: 16Mi
|
||
limits:
|
||
cpu: 100m
|
||
memory: 64Mi
|
||
|
||
---
|
||
apiVersion: v1
|
||
kind: Service
|
||
metadata:
|
||
name: sless-funcs-service
|
||
namespace: sless
|
||
spec:
|
||
selector:
|
||
app: sless-funcs-service
|
||
ports:
|
||
- port: 8090
|
||
targetPort: 8090
|
||
|
||
---
|
||
# Отдельный Ingress для /funcs — nginx выбирает более специфичный путь перед /
|
||
# Без rewrite: сервис сам обрабатывает /funcs path
|
||
# TLS-сертификат sless-operator-tls уже управляется cert-manager через ingress оператора;
|
||
# здесь только ссылаемся на существующий секрет без аннотации cert-manager.io/cluster-issuer.
|
||
apiVersion: networking.k8s.io/v1
|
||
kind: Ingress
|
||
metadata:
|
||
name: sless-funcs-ingress
|
||
namespace: sless
|
||
annotations:
|
||
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
|
||
nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
||
spec:
|
||
ingressClassName: nginx
|
||
rules:
|
||
- host: sless.kube5s.ru
|
||
http:
|
||
paths:
|
||
- path: /funcs
|
||
pathType: Prefix
|
||
backend:
|
||
service:
|
||
name: sless-funcs-service
|
||
port:
|
||
number: 8090
|
||
tls:
|
||
- hosts:
|
||
- sless.kube5s.ru
|
||
secretName: sless-operator-tls
|