unip-controller/deploy/crd/data-box.yaml

180 lines
9.5 KiB
YAML
Raw Normal View History

2025-01-29 13:13:51 +00:00
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
# имя, должно соответствовать спецификации ниже, и быть в формате <plural>.<group>
name: databoxes.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:
description: DataBox является определением ресурса DataBox.
DataBox - ящик для хранения данных.
type: object
properties:
spec:
type: object
description: DataBoxSpec определяет желаемое состояние ящика.
Содержит спецификацию ящика, что включает определение нижестоящей
системы хранения.
properties:
s3Storage:
type: object
description: S3Storage определяет параметры S3 ящика.
В S3 ящике данные хранятся по заданному пути внутри S3 бакета.
properties:
host:
type: string
description: Хост S3 хранилища.
bucket:
type: object
description: Параметры используемого S3 бакета.
properties:
name:
type: string
description: Имя S3 бакета.
subPath:
type: string
description: Путь внутри S3 бакета, с которым ассоциирован ящик.
Данные ящика сохранятся в бакет относительно указанного subPath.
required: ["name"]
capacity:
type: string
description: Размер ящика в формате
<численное значение><единица измерения>.
Поддерживаются все единицы измерения объема памяти Kubernetes.
default: 1G
awsVarsS3Credentials:
type: string
description: Имя секрета с реквизитами для доступа к S3 бакету
в формате AWS_S3_VARS.
required: ["host", "bucket"]
oneOf:
- properties:
awsVarsS3Credentials: {}
required: ["awsVarsS3Credentials"]
s3DefaultStorage:
type: object
description: S3DefaultStorage определяет параметры S3 ящика по умолчанию.
В S3 ящике по умолчанию данные хранятся в специальном S3 бакете,
указание параметров которого не требуется.
properties:
capacity:
type: string
description: Размер ящика в формате
<численное значение><единица измерения>.
Поддерживаются все единицы измерения объема памяти Kubernetes.
default: 1G
datasetReference:
type: object
description: DatasetReference определяет параметры ящика-ссылки на датасет.
properties:
datasetComponentRef:
type: object
description: Ссылка на объект вида DatasetComponent
properties:
name:
type: string
description: Имя DatasetComponent.
namespace:
type: string
description: Пространство имен DatasetComponent.
credentials:
type: object
description: Реквизиты доступа к датасету.
properties:
secretRef:
type: object
description: Ссылка на Secret с реквизитами.
properties:
name:
type: string
description: Имя Secret.
required: ["name"]
required: ["secretRef"]
required: ["datasetComponentRef"]
oneOf:
- properties:
s3Storage: {}
required: ["s3Storage"]
- properties:
s3DefaultStorage: {}
required: ["s3DefaultStorage"]
- properties:
datasetReference: {}
required: ["datasetReference"]
status:
x-kubernetes-preserve-unknown-fields: true
type: object
description: DataBoxStatus хранит фактическое состояние ящика.
properties:
conditions:
type: array
default: []
description: Список наблюдаемых в настоящий момент условий.
items:
maxItems: 32
type: object
properties:
type:
type: string
description: Тип условия.
conditionStatus:
type: string
description: Статус условия "True", "False" или "Unknown".
observedGeneration:
type: integer
description: Содержит .metadata.generation, при котором условие
было установлено.
lastTransitionTime:
type: string
description: Время последнего изменения статуса условия
в формате ISO.
reason:
type: string
description: Содержит программный идентификатор, являющийся
индикатором причины последнего изменения статуса условия.
message:
type: string
description: Подробное описание условия, понятное человеку.
required: ["type", "conditionStatus", "lastTransitionTime", "reason", "message"]
s3Storage:
type: object
description: S3Storage хранит фактическое состояние S3 ящика.
properties:
csiS3PersistentVolumeClaimUID:
type: string
description: UID ассоциированного с S3 ящиком PVC.
csiS3PersistentVolumeClaimName:
type: string
description: Имя ассоциированного с S3 ящиком PVC.
csiS3PersistentVolumeUID:
type: string
description: UID ассоциированного с S3 ящиком PV.
csiS3PersistentVolumeName:
type: string
description: Имя ассоциированного с S3 ящиком PV.
subresources:
status: {}
# Namespaced или Cluster
scope: Namespaced
names:
# имя во множественном числе, используемое в URL: /apis/<group>/<version>/<plural>
plural: databoxes
# имя в единственном числе, используемое в CLI и для отображения
singular: databox
# вид, обычно CamelCased в единственном числе, указывается в манифестах ресурсов
kind: DataBox
# короткие имена для использования в операциях с ресурсами в CLI
shortNames:
- dtbx
- dtbxs
categories:
- all