392 lines
21 KiB
YAML
392 lines
21 KiB
YAML
|
|
apiVersion: apiextensions.k8s.io/v1
|
|||
|
|
kind: CustomResourceDefinition
|
|||
|
|
metadata:
|
|||
|
|
# имя, должно соответствовать спецификации ниже, и быть в формате <plural>.<group>
|
|||
|
|
name: experimentpipelines.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: ExperimentPipeline является определением ресурса ExperimentPipeline.
|
|||
|
|
ExperimentPipeline - пайплайн, этапы которого выполняются как контейнеры.
|
|||
|
|
properties:
|
|||
|
|
spec:
|
|||
|
|
type: object
|
|||
|
|
description: ExperimentPipelineSpec определяет пайплайн.
|
|||
|
|
Содержит спецификацию этапов с входными и выходными переменными, подсоединенных ящиков.
|
|||
|
|
properties:
|
|||
|
|
vars:
|
|||
|
|
type: array
|
|||
|
|
description: Список всех переменных пайплайна.
|
|||
|
|
items:
|
|||
|
|
maxItems: 32
|
|||
|
|
type: object
|
|||
|
|
description: Определение переменной.
|
|||
|
|
properties:
|
|||
|
|
name:
|
|||
|
|
type: string
|
|||
|
|
description: имя переменной
|
|||
|
|
path:
|
|||
|
|
type: string
|
|||
|
|
maxLength: 255
|
|||
|
|
description: Путь внутри контейнера, куда монтируется значение
|
|||
|
|
переменной как файл или директория с файлами.
|
|||
|
|
|
|||
|
|
Может быть не задано, тогда используется путь,
|
|||
|
|
заданный в конфигурации присоединенного ящика по умолчанию.
|
|||
|
|
mountFrom:
|
|||
|
|
type: object
|
|||
|
|
description: Определение конфигурации монтирования файлов входной переменной.
|
|||
|
|
Если не задано, то используется конфигурация присоединенного ящика по умолчанию.
|
|||
|
|
properties:
|
|||
|
|
box:
|
|||
|
|
type: object
|
|||
|
|
description: Настройки монтирования файлов входной переменной с помощью
|
|||
|
|
присоединенных ящиков.
|
|||
|
|
properties:
|
|||
|
|
name:
|
|||
|
|
type: string
|
|||
|
|
description: Имя присоединенного ящика.
|
|||
|
|
boxPath:
|
|||
|
|
type: string
|
|||
|
|
description: Путь внутри присоединенного ящика.
|
|||
|
|
Если атрибут задан, то переменная ассоциирована с данными в ящике,
|
|||
|
|
ее значение нельзя задать при запуске пайплайна.
|
|||
|
|
required: [ "name" ]
|
|||
|
|
required: [ "name" ]
|
|||
|
|
stages:
|
|||
|
|
type: array
|
|||
|
|
description: Список этапов пайплайна.
|
|||
|
|
items:
|
|||
|
|
maxItems: 32
|
|||
|
|
type: object
|
|||
|
|
description: Определение этапа пайплайна.
|
|||
|
|
properties:
|
|||
|
|
name:
|
|||
|
|
type: string
|
|||
|
|
description: Имя этапа пайплайна.
|
|||
|
|
image:
|
|||
|
|
type: object
|
|||
|
|
description: Определяет используемый образ для этапа.
|
|||
|
|
properties:
|
|||
|
|
existingImageName:
|
|||
|
|
description: Имя существующего образа.
|
|||
|
|
type: string
|
|||
|
|
oneOf:
|
|||
|
|
- properties:
|
|||
|
|
existingImageName: {}
|
|||
|
|
required: ["existingImageName"] # may be newImage
|
|||
|
|
inputs:
|
|||
|
|
type: array
|
|||
|
|
description: Список входных переменных этапа.
|
|||
|
|
items:
|
|||
|
|
maxItems: 32
|
|||
|
|
type: object
|
|||
|
|
description: Определение входной переменной этапа.
|
|||
|
|
properties:
|
|||
|
|
name:
|
|||
|
|
type: string
|
|||
|
|
description: Имя входной переменной.
|
|||
|
|
path:
|
|||
|
|
type: string
|
|||
|
|
maxLength: 255
|
|||
|
|
description: Префикс пути внутри контейнера, куда монтируется значение
|
|||
|
|
входной переменной как файл или директория с файлами.
|
|||
|
|
|
|||
|
|
Может быть не задано, тогда используется путь,
|
|||
|
|
заданный в конфигурации присоединенного ящика по умолчанию.
|
|||
|
|
mountFrom:
|
|||
|
|
type: object
|
|||
|
|
description: Определение конфигурации монтирования файлов входной переменной.
|
|||
|
|
Если не задано, то используется конфигурация присоединенного ящика по умолчанию.
|
|||
|
|
properties:
|
|||
|
|
box:
|
|||
|
|
type: object
|
|||
|
|
description: Настройки монтирования файлов входной переменной с помощью
|
|||
|
|
присоединенных ящиков.
|
|||
|
|
properties:
|
|||
|
|
name:
|
|||
|
|
type: string
|
|||
|
|
description: Имя присоединенного ящика.
|
|||
|
|
boxPath:
|
|||
|
|
type: string
|
|||
|
|
description: Путь внутри присоединенного ящика.
|
|||
|
|
Если атрибут задан, то переменная ассоциирована с данными в ящике,
|
|||
|
|
ее значение нельзя задать при запуске пайплайна.
|
|||
|
|
required: ["name"]
|
|||
|
|
required: ["name"]
|
|||
|
|
outputs:
|
|||
|
|
type: array
|
|||
|
|
description: Список выходных переменных этапа.
|
|||
|
|
items:
|
|||
|
|
maxItems: 32
|
|||
|
|
type: object
|
|||
|
|
description: Определение выходной переменной этапа.
|
|||
|
|
properties:
|
|||
|
|
name:
|
|||
|
|
type: string
|
|||
|
|
description: Имя выходной переменной.
|
|||
|
|
path:
|
|||
|
|
type: string
|
|||
|
|
maxLength: 255
|
|||
|
|
description: Префикс пути внутри контейнера, куда монтируется значение
|
|||
|
|
выходной переменной как директория с файлами.
|
|||
|
|
|
|||
|
|
Может быть не задано, тогда используется путь,
|
|||
|
|
заданный в конфигурации присоединенного ящика по умолчанию.
|
|||
|
|
mountFrom:
|
|||
|
|
type: object
|
|||
|
|
description: Определение конфигурации монтирования файлов выходной переменной.
|
|||
|
|
Если не задано, то используется конфигурация присоединенного ящика по умолчанию.
|
|||
|
|
properties:
|
|||
|
|
box:
|
|||
|
|
type: object
|
|||
|
|
description: Настройки монтирования файлов выходной переменной с помощью
|
|||
|
|
присоединенных ящиков.
|
|||
|
|
properties:
|
|||
|
|
name:
|
|||
|
|
type: string
|
|||
|
|
description: Имя присоединенного ящика.
|
|||
|
|
required: ["name"]
|
|||
|
|
required: ["name"]
|
|||
|
|
entryPoint:
|
|||
|
|
type: object
|
|||
|
|
description: Определяет параметры точки входа для старта этапа.
|
|||
|
|
properties:
|
|||
|
|
cmd:
|
|||
|
|
type: array
|
|||
|
|
description: Команда запуска этапа.
|
|||
|
|
items:
|
|||
|
|
maxItems: 32
|
|||
|
|
type: string
|
|||
|
|
required: ["cmd"]
|
|||
|
|
envFrom:
|
|||
|
|
type: array
|
|||
|
|
description: Определяет список ссылок на Secret и ConfigMap,
|
|||
|
|
из которых добавляются переменные окружения.
|
|||
|
|
items:
|
|||
|
|
maxItems: 32
|
|||
|
|
type: object
|
|||
|
|
properties:
|
|||
|
|
configMapRef:
|
|||
|
|
type: object
|
|||
|
|
properties:
|
|||
|
|
name:
|
|||
|
|
type: string
|
|||
|
|
required: ["name"]
|
|||
|
|
secretRef:
|
|||
|
|
type: object
|
|||
|
|
properties:
|
|||
|
|
name:
|
|||
|
|
type: string
|
|||
|
|
required: ["name"]
|
|||
|
|
oneOf:
|
|||
|
|
- properties:
|
|||
|
|
configMapRef: {}
|
|||
|
|
required: ["configMapRef"]
|
|||
|
|
- properties:
|
|||
|
|
secretRef: {}
|
|||
|
|
required: ["secretRef"]
|
|||
|
|
configFrom:
|
|||
|
|
type: array
|
|||
|
|
description: Определяет список подключаемых как файлов Secret и ConfigMap
|
|||
|
|
items:
|
|||
|
|
maxItems: 32
|
|||
|
|
type: object
|
|||
|
|
properties:
|
|||
|
|
path:
|
|||
|
|
type: string
|
|||
|
|
configMap:
|
|||
|
|
type: object
|
|||
|
|
properties:
|
|||
|
|
name:
|
|||
|
|
type: string
|
|||
|
|
items:
|
|||
|
|
type: array
|
|||
|
|
items:
|
|||
|
|
maxItems: 32
|
|||
|
|
type: object
|
|||
|
|
properties:
|
|||
|
|
key:
|
|||
|
|
type: string
|
|||
|
|
path:
|
|||
|
|
type: string
|
|||
|
|
required: ["key", "path"]
|
|||
|
|
required: ["name"]
|
|||
|
|
secret:
|
|||
|
|
type: object
|
|||
|
|
properties:
|
|||
|
|
name:
|
|||
|
|
type: string
|
|||
|
|
items:
|
|||
|
|
type: array
|
|||
|
|
items:
|
|||
|
|
maxItems: 32
|
|||
|
|
type: object
|
|||
|
|
properties:
|
|||
|
|
key:
|
|||
|
|
type: string
|
|||
|
|
path:
|
|||
|
|
type: string
|
|||
|
|
required: ["key", "path"]
|
|||
|
|
required: ["name"]
|
|||
|
|
oneOf:
|
|||
|
|
- properties:
|
|||
|
|
path: {}
|
|||
|
|
configMap: {}
|
|||
|
|
required: ["path", "configMap"]
|
|||
|
|
- properties:
|
|||
|
|
path: {}
|
|||
|
|
secret: {}
|
|||
|
|
required: ["path", "secret"]
|
|||
|
|
env:
|
|||
|
|
type: array
|
|||
|
|
description: Определяет список переменных окружения.
|
|||
|
|
items:
|
|||
|
|
maxItems: 32
|
|||
|
|
type: object
|
|||
|
|
properties:
|
|||
|
|
name:
|
|||
|
|
type: string
|
|||
|
|
value:
|
|||
|
|
type: string
|
|||
|
|
required: ["name", "value"]
|
|||
|
|
resourceLimits:
|
|||
|
|
type: object
|
|||
|
|
description: Определяет ограничения по CPU и оперативной памяти для этапа пайплайна.
|
|||
|
|
properties:
|
|||
|
|
cpu:
|
|||
|
|
type: string
|
|||
|
|
description: Ограничение по использованию CPU в формате
|
|||
|
|
<числовое значение><единица измерения>.
|
|||
|
|
Поддерживаются все единицы измерения ресурсов Kubernetes.
|
|||
|
|
memory:
|
|||
|
|
type: string
|
|||
|
|
description: Ограничение по использованию оперативной памяти в формате
|
|||
|
|
<числовое значение><единица измерения>.
|
|||
|
|
Поддерживаются все единицы измерения ресурсов Kubernetes.
|
|||
|
|
gpu:
|
|||
|
|
type: string
|
|||
|
|
description: Ограничение по использованию ресурсов графических ускорителей.
|
|||
|
|
Поддерживается формат <числовое значение> для задания числа используемых
|
|||
|
|
графических ускорителей узла.
|
|||
|
|
required: ["image", "inputs", "outputs"]
|
|||
|
|
connectedBoxes:
|
|||
|
|
type: array
|
|||
|
|
description: Определяет присоединенные ящики данных - ресурсы вида DataBox.
|
|||
|
|
items:
|
|||
|
|
maxItems: 32
|
|||
|
|
type: object
|
|||
|
|
properties:
|
|||
|
|
name:
|
|||
|
|
type: string
|
|||
|
|
maxLength: 255
|
|||
|
|
description: Имя присоединенного ящика.
|
|||
|
|
path:
|
|||
|
|
type: string
|
|||
|
|
maxLength: 255
|
|||
|
|
description: Путь внутри контейнера. Смысл зависит от типа присоединения ящика.
|
|||
|
|
Для MountS3Box - директория, используемая для монтирования S3 ящика.
|
|||
|
|
default:
|
|||
|
|
type: boolean
|
|||
|
|
default: false
|
|||
|
|
mountS3Box:
|
|||
|
|
type: object
|
|||
|
|
description: Определение присоединения S3 ящика типа "монтирование".
|
|||
|
|
properties:
|
|||
|
|
s3BoxName:
|
|||
|
|
type: string
|
|||
|
|
description: Имя ящика.
|
|||
|
|
required: ["s3BoxName"]
|
|||
|
|
mountDataset:
|
|||
|
|
type: object
|
|||
|
|
description: Определение присоединения ящика датасета типа "монтирование".
|
|||
|
|
properties:
|
|||
|
|
datasetReferenceName:
|
|||
|
|
type: string
|
|||
|
|
description: Имя ящика-ссылки на датасет.
|
|||
|
|
required: ["datasetReferenceName"]
|
|||
|
|
required: ["name"]
|
|||
|
|
oneOf:
|
|||
|
|
- properties:
|
|||
|
|
mountS3Box: {}
|
|||
|
|
required: ["mountS3Box"]
|
|||
|
|
- properties:
|
|||
|
|
mountDataset: {}
|
|||
|
|
required: ["mountDataset"]
|
|||
|
|
continueWith:
|
|||
|
|
type: object
|
|||
|
|
description: Определяет пайплайн, который должен быть запущен после выполнения текущего
|
|||
|
|
папйлайна.
|
|||
|
|
properties:
|
|||
|
|
name:
|
|||
|
|
type: string
|
|||
|
|
description: Имя пайплайна.
|
|||
|
|
maxLength: 255
|
|||
|
|
required: ["name"]
|
|||
|
|
# oneOf:
|
|||
|
|
# - properties:
|
|||
|
|
# simplePipeline: {}
|
|||
|
|
# required: ["simplePipeline"]
|
|||
|
|
# - properties:
|
|||
|
|
# mldevPipeline: {}
|
|||
|
|
# required: ["mldevPipeline"]
|
|||
|
|
required: ["stages", "connectedBoxes"]
|
|||
|
|
status:
|
|||
|
|
x-kubernetes-preserve-unknown-fields: true
|
|||
|
|
type: object
|
|||
|
|
properties:
|
|||
|
|
conditions:
|
|||
|
|
type: array
|
|||
|
|
items:
|
|||
|
|
maxItems: 32
|
|||
|
|
type: object
|
|||
|
|
properties:
|
|||
|
|
type:
|
|||
|
|
type: string
|
|||
|
|
conditionStatus:
|
|||
|
|
type: string
|
|||
|
|
observedGeneration:
|
|||
|
|
type: integer
|
|||
|
|
lastTransitionTime:
|
|||
|
|
type: string
|
|||
|
|
reason:
|
|||
|
|
type: string
|
|||
|
|
message:
|
|||
|
|
type: string
|
|||
|
|
required: [ "type", "conditionStatus", "lastTransitionTime", "reason", "message"]
|
|||
|
|
validation:
|
|||
|
|
type: object
|
|||
|
|
properties:
|
|||
|
|
validationPodName:
|
|||
|
|
type: string
|
|||
|
|
nullable: true
|
|||
|
|
default: {}
|
|||
|
|
subresources:
|
|||
|
|
status: {}
|
|||
|
|
# Namespaced or Cluster
|
|||
|
|
scope: Namespaced
|
|||
|
|
names:
|
|||
|
|
# имя во множественном числе, используемое в URL: /apis/<group>/<version>/<plural>
|
|||
|
|
plural: experimentpipelines
|
|||
|
|
# имя в единственном числе, используемое в CLI и для отображения
|
|||
|
|
singular: experimentpipeline
|
|||
|
|
# вид, обычно CamelCased в единственном числе, указывается в манифестах ресурсов
|
|||
|
|
kind: ExperimentPipeline
|
|||
|
|
# короткие имена для использования в операциях с ресурсами в CLI
|
|||
|
|
shortNames:
|
|||
|
|
- exppipeline
|
|||
|
|
- exppipelines
|
|||
|
|
- exppln
|
|||
|
|
- expplns
|
|||
|
|
categories:
|
|||
|
|
- all
|