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