unip-controller/deploy/crd/platform-app.yaml

195 lines
11 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: platformapps.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:
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/<group>/<version>/<plural>
plural: platformapps
# имя в единственном числе, используемое в CLI и для отображения
singular: platformapp
# вид, обычно CamelCased в единственном числе, указывается в манифестах ресурсов
kind: PlatformApp
# короткие имена для использования в операциях с ресурсами в CLI
shortNames:
- papp
- papps
categories:
- all