# 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