apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: # имя, должно соответствовать спецификации ниже, и быть в формате . name: platformapps.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: type: object description: PlatformApp является определением ресурса PlatformApp. PlatformApp - приложение платформы. properties: spec: type: object description: PlatformAppSpec определяет желаемое состояние приложения. Содержит спецификацию приложения, что включает определение репозитория со спецификацией приложения, список используемых репозиториев и реквизитов приложения. properties: appSourceCode: type: object description: AppSourceCode определяет исходный код спецификации приложения. properties: sourceRepositoryRef: type: object description: Является ссылкой на репозиторий с исходным кодом. properties: name: type: string description: Имя репозитория. sourceRepositoryKind: type: string description: | Вид репозитория. Поддерживаемые виды: "git". credentialsKind: type: string description: | Вид реквизитов. Поддерживаемые виды: "HTTPBasedURLCredentials". required: ["name", "sourceRepositoryKind", "credentialsKind"] revision: type: string description: Используемая ревизия исходного кода. repositoryPath: type: string default: app description: Путь внутри репозитория к директории со спецификацией приложения. required: ["repositoryPath", "sourceRepositoryRef"] repositories: type: array description: Список репозиториев приложения. items: maxItems: 32 type: object properties: name: type: string maxLength: 255 description: Имя репозитория. imageRegistryRef: type: object description: ImageRegistryRef определяет ссылку на реестр образов. Реквизиты и конфигурация копируются в пространство имен приложения как Secret и ConfigMap с суффиксами -cred и -cfg соответственно. properties: name: type: string description: Имя реестра. imageKind: type: string description: | Вид образов, который поддерживает реестр. Поддерживаемые виды: "docker". credentialsKind: type: string description: | Вид реквизитов. Поддерживаемые виды: "DockerConfigJsonCredentials". required: ["name", "imageKind", "credentialsKind"] packageRegistryRef: type: object description: PackageRegistryRef определяет ссылку на реестр пакетов. Реквизиты и конфигурация копируются в пространство имен приложения как Secret и ConfigMap с суффиксами -cred и -cfg соответственно. properties: name: type: string description: Имя реестра. packageKind: type: string description: | Вид пакетов, который поддерживает реестр. Поддерживаемые виды: "python". credentialsKind: type: string description: | Вид реквизитов. Поддерживаемые виды: "HTTPBasedURLCredentials". required: ["name", "packageKind", "credentialsKind"] sourceRepositoryRef: type: object description: SourceRepositoryRef определяет ссылку на репозиторий с исходным кодом. Реквизиты и конфигурация копируются в пространство имен приложения как Secret и ConfigMap с суффиксами -cred и -cfg соответственно. properties: name: type: string description: Имя репозитория. sourceRepositoryKind: type: string description: | Вид репозитория. Поддерживаемые виды: "git". credentialsKind: type: string description: | Вид реквизитов. Поддерживаемые виды: "HTTPBasedURLCredentials". required: ["name", "sourceRepositoryKind", "credentialsKind"] oneOf: - properties: imageRegistryRef: {} required: ["imageRegistryRef"] - properties: packageRegistryRef: {} required: ["packageRegistryRef"] - properties: sourceRepositoryRef: {} required: ["sourceRepositoryRef"] boxesCredentials: type: array description: Список S3 реквизитов приложения. Реквизиты копируются в пространство имен приложения как Secret с именем <имя реквизитов в этом списке>-cred. items: maxItems: 32 type: object properties: name: type: string maxLength: 255 description: Имя реквизитов. secretRef: type: object description: Ссылка на Secret с реквизитами в формате AWS_S3_VARS. properties: name: type: string description: Имя Secret. required: ["name"] required: ["name", "secretRef"] apisCredentials: type: array description: Список реквизитов приложения для доступа к интерфейсам APIComponent. Реквизиты копируются в пространство имен приложения как Secret с именем <имя реквизитов в этом списке>-cred. items: maxItems: 32 type: object properties: name: type: string maxLength: 255 description: Имя реквизитов. secretRef: type: object description: Ссылка на Secret с реквизитами в формате htpasswd. properties: name: type: string description: Имя Secret. required: ["name"] required: ["name", "secretRef"] required: ["appSourceCode"] status: x-kubernetes-preserve-unknown-fields: true type: object subresources: status: {} # Namespaced or Cluster scope: Namespaced names: # имя во множественном числе, используемое в URL: /apis/// plural: platformapps # имя в единственном числе, используемое в CLI и для отображения singular: platformapp # вид, обычно CamelCased в единственном числе, указывается в манифестах ресурсов kind: PlatformApp # короткие имена для использования в операциях с ресурсами в CLI shortNames: - papp - papps categories: - all