328 lines
No EOL
20 KiB
YAML
328 lines
No EOL
20 KiB
YAML
apiVersion: apiextensions.k8s.io/v1
|
||
kind: CustomResourceDefinition
|
||
metadata:
|
||
# имя, должно соответствовать спецификации ниже, и быть в формате <plural>.<group>
|
||
name: apicomponents.unified-platform.cs.hse.ru
|
||
spec:
|
||
# имя группы, используемое в REST API: /apis/<group>/<version>
|
||
group: unified-platform.cs.hse.ru
|
||
# Список версий, поддерживаемых этим определением CustomResourceDefinition
|
||
versions:
|
||
- name: v1
|
||
# Каждая версия может быть влкючена или выключена при помощи served флага.
|
||
served: true
|
||
# Только одна версия может быть отмечена как storage версия.
|
||
storage: true
|
||
schema:
|
||
openAPIV3Schema:
|
||
type: object
|
||
description: APIComponent является определением ресурса APIComponent.
|
||
APIComponent - компонент, предоставляющий интерфейс для внешнего доступа к приложению.
|
||
properties:
|
||
spec:
|
||
type: object
|
||
description: APIComponent определяет желаемое состояние API компонента.
|
||
Содержит спецификацию внешних интерфейсов.
|
||
properties:
|
||
published:
|
||
type: boolean
|
||
default: true
|
||
description: Published определяет, открыт или закрыт доступ
|
||
к интерфейсу APIComponent.
|
||
mlComponent:
|
||
type: object
|
||
description: MLComponent определяет параметры интерфейса к сервису
|
||
MLComponent.
|
||
properties:
|
||
name:
|
||
type: string
|
||
description: Имя ресурса MLComponent.
|
||
required: ["name"]
|
||
experimentPipeline:
|
||
type: object
|
||
description: ExperimentPipeline определяет параметры интерфейса к сервису пайплайна.
|
||
properties:
|
||
name:
|
||
type: string
|
||
description: Имя ресурса ExperimentPipeline.
|
||
required: ["name"]
|
||
files:
|
||
type: object
|
||
description: Files определяет параметры интерфейса к сервису Files.
|
||
properties:
|
||
enabled:
|
||
type: boolean
|
||
default: false
|
||
description: Enabled определяет, открыт или закрыт доступ к интерфейсу Files.
|
||
required: ["enabled"]
|
||
pipelines:
|
||
type: object
|
||
description: Pipelines определяет параметры интерфейса к сервису Pipelines.
|
||
properties:
|
||
enabled:
|
||
type: boolean
|
||
default: false
|
||
description: Enabled определяет, открыт или закрыт доступ к интерфейсу Pipelines.
|
||
required: ["enabled"]
|
||
restfulApi:
|
||
type: object
|
||
description: RESTfulAPI определяет параметры REST API к предоставляемым сервисам.
|
||
properties:
|
||
path:
|
||
type: string
|
||
description: Путь, определяющий часть адреса предоставляемого интерфейса.
|
||
auth:
|
||
type: object
|
||
description: Auth определяет параметры аутентификции.
|
||
properties:
|
||
basic:
|
||
type: object
|
||
description: Basic определяет параметры базовой аутентификации.
|
||
properties:
|
||
enabled:
|
||
type: boolean
|
||
description: Определяет, включена ли базовая аутентификация.
|
||
Считается, что если атрибут не задан, то базовая аутентификация включена.
|
||
credentials:
|
||
type: string
|
||
description: Имя секрета с реквизитами базовой аутентификации
|
||
в формате файла htpasswd.
|
||
oidc:
|
||
type: object
|
||
description: OIDC определяет параметры OIDC аутентификации.
|
||
properties:
|
||
enabled:
|
||
type: boolean
|
||
description: Определяет, включена ли OIDC аутентификация.
|
||
Считается, что если атрибут не задан, то OIDC аутентификация включена.
|
||
groups:
|
||
type: array
|
||
description: Определяет разрешенные группы.
|
||
items:
|
||
maxItems: 32
|
||
type: string
|
||
maxLength: 255
|
||
roles:
|
||
type: array
|
||
description: Определяет разрешенные роли.
|
||
items:
|
||
maxItems: 32
|
||
type: string
|
||
maxLength: 255
|
||
identityPassThrough:
|
||
type: boolean
|
||
default: true
|
||
description: Определяет, передавать ли идентичность аутентифицированного пользователя
|
||
в нижестоящий сервис.
|
||
required: ["identityPassThrough"]
|
||
anyOf:
|
||
- properties:
|
||
basic: {}
|
||
required: ["basic"]
|
||
- properties:
|
||
oidc: {}
|
||
required: ["oidc"]
|
||
cors:
|
||
type: object
|
||
properties:
|
||
enabled:
|
||
type: boolean
|
||
description: Определяет, применяются ли настройки, заданные в спецификации ресурса.
|
||
allowMethods:
|
||
type: array
|
||
description: Определяет настройку CORS Allow Methods.
|
||
items:
|
||
maxItems: 32
|
||
type: string
|
||
maxLength: 255
|
||
allowHeaders:
|
||
type: array
|
||
description: Определяет настройку CORS Allow Headers.
|
||
items:
|
||
maxItems: 32
|
||
type: string
|
||
maxLength: 255
|
||
exposeHeaders:
|
||
type: array
|
||
description: Определяет настройку CORS Expose Headers.
|
||
items:
|
||
maxItems: 32
|
||
type: string
|
||
maxLength: 255
|
||
allowOrigin:
|
||
type: array
|
||
description: Определяет настройку CORS Allow Origin.
|
||
items:
|
||
maxItems: 32
|
||
type: string
|
||
maxLength: 255
|
||
maxAge:
|
||
type: integer
|
||
required: ["auth"]
|
||
apiSpec:
|
||
type: object
|
||
description: Спецификация API для компонента, к которому APIComponent предоставляет интерфейс.
|
||
properties:
|
||
inputs:
|
||
type: array
|
||
description: Список входных переменных.
|
||
items:
|
||
maxItems: 32
|
||
type: object
|
||
description: Определение входной переменной.
|
||
properties:
|
||
name:
|
||
type: string
|
||
description: Имя входной переменной.
|
||
description:
|
||
type: string
|
||
maxLength: 1000
|
||
description: Описание входной переменной.
|
||
type:
|
||
type: object
|
||
description: Определение типа входной переменной.
|
||
Тип определяется только для входных переменных, значения которых
|
||
передаются через API.
|
||
properties:
|
||
datatypes:
|
||
type: array
|
||
description: Список допустимых типов значений входной переменной.
|
||
Тип значения используется при передаче значений входных переменных
|
||
через API.
|
||
Включает файловые типы 'FILE', 'WEBSITE'
|
||
и объектные типы, такие как 'FP32', 'str', 'dict'.
|
||
|
||
В качестве значения файлового типа могут быть переданы локации файла или
|
||
файловой группы.
|
||
|
||
Если передано значение объектного типа, то оно может быть сохранено в файл,
|
||
(поведение зависит от типа компонента, который реализует интерфейс).
|
||
|
||
Тип содержимого файла (contentType) предопределен для типа 'WEBSITE' и всех
|
||
объектных типов значения входной переменной.
|
||
|
||
Тип значения 'FILE' является допустимым, даже если он не задан в спецификации API.
|
||
|
||
Если атрибут datatypes не определен в спецификации API,
|
||
то допустимыми являются все типы datatypes.
|
||
items:
|
||
type: string
|
||
maxItems: 16
|
||
contentTypes:
|
||
type: array
|
||
description: Список допустимых типов содержимого файла (или файлов),
|
||
в котором содержится значение входной переменной.
|
||
Типами содержимого могут быть любые MIME типы.
|
||
|
||
Тип содержимого используется при передаче значений входных переменных
|
||
через API.
|
||
|
||
Если при запуске передано значение объектного типа,
|
||
то оно может быть сохранено в файл,
|
||
(поведение зависит от типа компонента, который реализует интерфейс).
|
||
|
||
Тип содержимого файла (contentType) предопределен для типа 'WEBSITE' и всех
|
||
объектных типов значения входной переменной, поэтому может не передаваться при вызове.
|
||
|
||
Если при вызове передано значение файлового типа (datatype == 'FILE'),
|
||
то тип содержимого файла может или должен быть передан,
|
||
(поведение зависит от типа компонента, который реализует интерфейс).
|
||
|
||
Если атрибут contentTypes не определен в спецификации API,
|
||
то допустимыми являются любые типы содержимого.
|
||
items:
|
||
type: string
|
||
maxItems: 32
|
||
required:
|
||
type: boolean
|
||
default: true
|
||
description: Является ли входная переменная обязательной.
|
||
required: [ "name" ]
|
||
outputs:
|
||
type: array
|
||
description: Список выходных переменных.
|
||
items:
|
||
maxItems: 32
|
||
type: object
|
||
description: Определение выходной переменной.
|
||
properties:
|
||
name:
|
||
type: string
|
||
description: Имя выходной переменной.
|
||
description:
|
||
type: string
|
||
maxLength: 1000
|
||
description: Описание выходной переменной.
|
||
type:
|
||
type: object
|
||
description: Определение типа выходной переменной.
|
||
properties:
|
||
datatypes:
|
||
type: array
|
||
description: Список допустимых типов значений выходной переменной.
|
||
Тип значения используется для указания через API ожидаемого типа
|
||
значений выходной переменной.
|
||
|
||
Включает файловые типы 'FILE', 'WEBSITE'.
|
||
|
||
Тип значения 'FILE' является допустимым, даже если он не задан в спецификации API.
|
||
|
||
Если атрибут datatypes не определен в спецификации API,
|
||
то допустимыми являются все выходные типы datatypes.
|
||
items:
|
||
type: string
|
||
maxItems: 16
|
||
contentTypes:
|
||
type: array
|
||
description: Список допустимых типов содержимого файлов,
|
||
в которых содержится значение выходной переменной.
|
||
Типами содержимого могут быть любые MIME типы.
|
||
|
||
Тип содержимого используется для указания через API ожидаемого типа содержимого
|
||
выходной переменной.
|
||
|
||
Если атрибут contentTypes не определен в спецификации API,
|
||
то допустимыми являются любые типы содержимого.
|
||
items:
|
||
type: string
|
||
maxItems: 32
|
||
required: ["name"]
|
||
allOf:
|
||
- oneOf:
|
||
- properties:
|
||
mlComponent: {}
|
||
required: ["mlComponent"]
|
||
- properties:
|
||
files: {}
|
||
required: ["files"]
|
||
- properties:
|
||
pipelines: {}
|
||
required: ["pipelines"]
|
||
- properties:
|
||
experimentPipeline: {}
|
||
required: ["experimentPipeline"]
|
||
- oneOf:
|
||
- properties:
|
||
restfulApi: {}
|
||
required: ["restfulApi"]
|
||
required: ["published"]
|
||
status:
|
||
x-kubernetes-preserve-unknown-fields: true
|
||
type: object
|
||
subresources:
|
||
status: {}
|
||
# Namespaced or Cluster
|
||
scope: Namespaced
|
||
names:
|
||
# имя во множественном числе, используемое в URL: /apis/<group>/<version>/<plural>
|
||
plural: apicomponents
|
||
# имя в единственном числе, используемое в CLI и для отображения
|
||
singular: apicomponent
|
||
# вид, обычно CamelCased в единственном числе, указывается в манифестах ресурсов
|
||
kind: APIComponent
|
||
# короткие имена для использования в операциях с ресурсами в CLI
|
||
shortNames:
|
||
- apicmp
|
||
- apicmps
|
||
categories:
|
||
- all |