apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: # имя, должно соответствовать спецификации ниже, и быть в формате . name: databoxes.unified-platform.cs.hse.ru spec: # имя группы, используемое в REST API: /apis// 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/// plural: databoxes # имя в единственном числе, используемое в CLI и для отображения singular: databox # вид, обычно CamelCased в единственном числе, указывается в манифестах ресурсов kind: DataBox # короткие имена для использования в операциях с ресурсами в CLI shortNames: - dtbx - dtbxs categories: - all