139 lines
6.9 KiB
YAML
139 lines
6.9 KiB
YAML
|
|
apiVersion: apiextensions.k8s.io/v1
|
|||
|
|
kind: CustomResourceDefinition
|
|||
|
|
metadata:
|
|||
|
|
name: datasetcomponents.unified-platform.cs.hse.ru
|
|||
|
|
spec:
|
|||
|
|
scope: Namespaced
|
|||
|
|
group: unified-platform.cs.hse.ru
|
|||
|
|
names:
|
|||
|
|
kind: DatasetComponent
|
|||
|
|
plural: datasetcomponents
|
|||
|
|
singular: datasetcomponent
|
|||
|
|
shortNames:
|
|||
|
|
- datacmps
|
|||
|
|
- datacmp
|
|||
|
|
- datasetcmps
|
|||
|
|
- datasetcmp
|
|||
|
|
versions:
|
|||
|
|
- name: v1
|
|||
|
|
served: true
|
|||
|
|
storage: true
|
|||
|
|
schema:
|
|||
|
|
openAPIV3Schema:
|
|||
|
|
type: object
|
|||
|
|
properties:
|
|||
|
|
spec:
|
|||
|
|
description: Определяет желаемое состояние датасета. Содержит спецификацию датасета, что включает ящик и версии.
|
|||
|
|
type: object
|
|||
|
|
properties:
|
|||
|
|
box:
|
|||
|
|
description: Название ящика
|
|||
|
|
type: string
|
|||
|
|
pattern: ^[a-zA-Z0-9_-]{1,50}$
|
|||
|
|
restfulApi:
|
|||
|
|
type: object
|
|||
|
|
description: Определяет параметры REST API к предоставляемым данным.
|
|||
|
|
required: ["auth"]
|
|||
|
|
properties:
|
|||
|
|
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
|
|||
|
|
anyOf:
|
|||
|
|
- properties:
|
|||
|
|
basic: {}
|
|||
|
|
required: ["basic"]
|
|||
|
|
- properties:
|
|||
|
|
oidc: {}
|
|||
|
|
required: ["oidc"]
|
|||
|
|
filesApiSecret:
|
|||
|
|
description: Секреты доступа к Files API с правами на чтение
|
|||
|
|
type: string
|
|||
|
|
pattern: ^[a-zA-Z0-9-]{1,60}$
|
|||
|
|
default: basic-auth-credentials-not-hashed
|
|||
|
|
versions:
|
|||
|
|
type: array
|
|||
|
|
items:
|
|||
|
|
description: Определяет желаемое состояние версии. Содержит спецификацию версии, что включает название и путь к данным.
|
|||
|
|
type: object
|
|||
|
|
properties:
|
|||
|
|
name:
|
|||
|
|
description: Название версии датасета.
|
|||
|
|
type: string
|
|||
|
|
pattern: ^[a-zA-Z0-9_-]{1,50}$
|
|||
|
|
contents:
|
|||
|
|
description: Информация о данных версии внутри ящика
|
|||
|
|
type: object
|
|||
|
|
properties:
|
|||
|
|
readme:
|
|||
|
|
description: Информация о текстовых метаданных для пользователя (в формате Markdown).
|
|||
|
|
type: object
|
|||
|
|
properties:
|
|||
|
|
path:
|
|||
|
|
description: Путь в ящике.
|
|||
|
|
type: string
|
|||
|
|
default: README.md
|
|||
|
|
sha256:
|
|||
|
|
description: Хэш сумма SHA-256.
|
|||
|
|
type: string
|
|||
|
|
pattern: ^[a-fA-F0-9]{64}$
|
|||
|
|
metadata:
|
|||
|
|
description: Информация о файле с метaданными (в формате JSON).
|
|||
|
|
type: object
|
|||
|
|
properties:
|
|||
|
|
path:
|
|||
|
|
description: Путь в ящике.
|
|||
|
|
type: string
|
|||
|
|
default: metadata.json
|
|||
|
|
sha256:
|
|||
|
|
description: Хэш сумма SHA-256.
|
|||
|
|
type: string
|
|||
|
|
pattern: ^[a-fA-F0-9]{64}$
|
|||
|
|
files:
|
|||
|
|
description: Информация о файле с перечнем файлов данных (в формате JSON).
|
|||
|
|
type: object
|
|||
|
|
properties:
|
|||
|
|
path:
|
|||
|
|
description: Путь в ящике.
|
|||
|
|
type: string
|
|||
|
|
default: files.json
|
|||
|
|
sha256:
|
|||
|
|
description: Хэш сумма SHA-256.
|
|||
|
|
type: string
|
|||
|
|
pattern: ^[a-fA-F0-9]{64}$
|
|||
|
|
status:
|
|||
|
|
type: object
|
|||
|
|
x-kubernetes-preserve-unknown-fields: true
|