Files
sless/services/funcs/funcs-service.yaml
T
Naeel a04dfb2d0c fix+docs: FunctionJob label bugfix, job ErrAlreadyExists, python str→text/plain, operator.yaml v0.1.33, progress.md
- controllers/functionjob_controller.go:
  - PodTemplate labels: functionjob=, function= (k8s 1.27+ удалил job-name=)
  - getJobPodOutput принимает labelSelector вместо jobName
  - захват stderr при Failed job; truncateForStatus() helper
- terraform/provider/internal/client/client.go: ErrJobAlreadyExists (409 Conflict)
- terraform/provider/internal/resources/job_resource.go: при конфликте создания — читаем существующий job
- runtimes/python3.11/server.py: str return → text/plain
- internal/builder/context.go: python runtime base image → v0.1.3
- deployments/k8s/operator.yaml: image → v0.1.33
- doc/progress.md: добавлены секции FunctionJob bugfix, str→text/plain, web-console v0.2.0
2026-03-18 17:41:44 +03:00

108 lines
3.3 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.3
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