unip-controller/deploy/crd/platform-app.yaml
2025-04-15 20:56:15 +03:00

195 lines
No EOL
11 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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