Files
sless/config/crd/bases/sless.kube5s.ru_services.yaml
T

200 lines
9.5 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.
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.14.0
name: services.sless.kube5s.ru
spec:
group: sless.kube5s.ru
names:
kind: Service
listKind: ServiceList
plural: services
singular: service
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .spec.runtime
name: Runtime
type: string
- jsonPath: .status.phase
name: Phase
type: string
- jsonPath: .status.url
name: URL
type: string
- jsonPath: .metadata.creationTimestamp
name: Age
type: date
name: v1alpha1
schema:
openAPIV3Schema:
description: |-
Service — ресурс для долгоживущего HTTP-сервиса.
Оператор создаёт Deployment + k8s Service + Ingress автоматически.
URL доступен сразу после фазы Ready, без создания sless_trigger.
properties:
apiVersion:
description: |-
APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
description: |-
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
spec:
description: |-
ServiceSpec — желаемое состояние сервиса.
Поля идентичны FunctionSpec, но нет семантики "одноразового вызова".
properties:
entrypoint:
description: 'Entrypoint — точка входа в код сервиса (например: handler.handle)'
type: string
env:
additionalProperties:
type: string
description: Env — переменные окружения, передаются в контейнер сервиса
type: object
memoryMB:
default: 128
description: 'MemoryMB — лимит памяти в мегабайтах (default: 128)'
format: int32
type: integer
runtime:
description: Runtime — язык и версия выполнения (go1.23, python3.11,
nodejs20)
enum:
- go1.23
- python3.11
- nodejs20
type: string
s3Bucket:
description: S3Bucket — бакет S3 где хранится zip архив с кодом
type: string
s3Key:
description: S3Key — ключ объекта в S3 (путь до zip архива)
type: string
timeoutSec:
default: 30
description: |-
TimeoutSec — таймаут HTTP-прокси в секундах (default: 30).
Ограничивает время ожидания ответа от пода в invoke.go.
Для длительных вызовов (batch, pgstorm) увеличить до нужного значения.
format: int32
type: integer
required:
- entrypoint
- runtime
- s3Bucket
- s3Key
type: object
status:
description: ServiceStatus — наблюдаемое состояние сервиса (заполняет
контроллер).
properties:
conditions:
description: Conditions — стандартные k8s conditions для интеграции
с инструментами
items:
description: "Condition contains details for one aspect of the current
state of this API Resource.\n---\nThis struct is intended for
direct use as an array at the field path .status.conditions. For
example,\n\n\n\ttype FooStatus struct{\n\t // Represents the
observations of a foo's current state.\n\t // Known .status.conditions.type
are: \"Available\", \"Progressing\", and \"Degraded\"\n\t //
+patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t
\ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\"
patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t
\ // other fields\n\t}"
properties:
lastTransitionTime:
description: |-
lastTransitionTime is the last time the condition transitioned from one status to another.
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
format: date-time
type: string
message:
description: |-
message is a human readable message indicating details about the transition.
This may be an empty string.
maxLength: 32768
type: string
observedGeneration:
description: |-
observedGeneration represents the .metadata.generation that the condition was set based upon.
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
with respect to the current state of the instance.
format: int64
minimum: 0
type: integer
reason:
description: |-
reason contains a programmatic identifier indicating the reason for the condition's last transition.
Producers of specific condition types may define expected values and meanings for this field,
and whether the values are considered a guaranteed API.
The value should be a CamelCase string.
This field may not be empty.
maxLength: 1024
minLength: 1
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
type: string
status:
description: status of the condition, one of True, False, Unknown.
enum:
- "True"
- "False"
- Unknown
type: string
type:
description: |-
type of condition in CamelCase or in foo.example.com/CamelCase.
---
Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be
useful (see .node.status.conditions), the ability to deconflict is important.
The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
required:
- lastTransitionTime
- message
- reason
- status
- type
type: object
type: array
imageRef:
description: ImageRef — полный путь к собранному Docker образу в registry
type: string
lastBuiltAt:
description: LastBuiltAt — время последней успешной сборки образа
format: date-time
type: string
message:
description: Message — человекочитаемое сообщение об ошибке или статусе
type: string
phase:
description: 'Phase — текущая фаза: Pending, Building, Ready, Failed'
type: string
url:
description: |-
URL — публичный URL сервиса, заполняется оператором после создания Ingress.
Формат: {ExternalURL}/fn/{namespace}/{name}
type: string
type: object
type: object
served: true
storage: true
subresources:
status: {}