148 lines
7.4 KiB
YAML
148 lines
7.4 KiB
YAML
|
|
apiVersion: apiextensions.k8s.io/v1
|
|||
|
|
kind: CustomResourceDefinition
|
|||
|
|
metadata:
|
|||
|
|
# имя, должно соответствовать спецификации ниже, и быть в формате <plural>.<group>
|
|||
|
|
name: repositories.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: Repository является определением ресурса Repository.
|
|||
|
|
Repository - репозиторий платформы.
|
|||
|
|
properties:
|
|||
|
|
spec:
|
|||
|
|
type: object
|
|||
|
|
description: RepositorySpec определяет желаемое состояние репозитория.
|
|||
|
|
Содержит спецификацию репозитория одного из поддерживаемых типов.
|
|||
|
|
properties:
|
|||
|
|
imageRegistry:
|
|||
|
|
type: object
|
|||
|
|
description: ImageRegistry определяет параметры репозитория типа реестр образов.
|
|||
|
|
properties:
|
|||
|
|
host:
|
|||
|
|
type: string
|
|||
|
|
description: Хост репозитория.
|
|||
|
|
dockerDockerConfigJsonCredentials:
|
|||
|
|
type: string
|
|||
|
|
description: Имя секрета с реквизитами доступа в формате DockerConfigJsonCredentials
|
|||
|
|
к реестру образов Docker.
|
|||
|
|
required: ["host"]
|
|||
|
|
oneOf:
|
|||
|
|
- properties:
|
|||
|
|
dockerDockerConfigJsonCredentials: {}
|
|||
|
|
required: ["dockerDockerConfigJsonCredentials"]
|
|||
|
|
packageRegistry:
|
|||
|
|
type: object
|
|||
|
|
description: PackageRegistry определяет параметры репозитория типа реестр пакетов.
|
|||
|
|
properties:
|
|||
|
|
host:
|
|||
|
|
type: string
|
|||
|
|
description: Хост репозитория.
|
|||
|
|
pythonHTTPBasedURLCredentials:
|
|||
|
|
type: string
|
|||
|
|
description: Имя секрета с реквизитами доступа в формате HTTPBasedURLCredentials
|
|||
|
|
к реестру Python пакетов.
|
|||
|
|
required: ["host"]
|
|||
|
|
oneOf:
|
|||
|
|
- properties:
|
|||
|
|
pythonHTTPBasedURLCredentials: {}
|
|||
|
|
required: ["pythonHTTPBasedURLCredentials"]
|
|||
|
|
sourceRepository:
|
|||
|
|
type: object
|
|||
|
|
description: SourceRepository определяет параметры репозитория типа репозиторий
|
|||
|
|
исходного кода.
|
|||
|
|
properties:
|
|||
|
|
host:
|
|||
|
|
type: string
|
|||
|
|
description: Хост репозитория.
|
|||
|
|
gitHTTPBasedURLCredentials:
|
|||
|
|
type: string
|
|||
|
|
description: Имя секрета с реквизитами доступа в формате HTTPBasedURLCredentials
|
|||
|
|
к Git репозиторию исходного кода.
|
|||
|
|
required: ["host"]
|
|||
|
|
oneOf:
|
|||
|
|
- properties:
|
|||
|
|
gitHTTPBasedURLCredentials: {}
|
|||
|
|
required: ["gitHTTPBasedURLCredentials"]
|
|||
|
|
userRegistry:
|
|||
|
|
type: object
|
|||
|
|
description: UserRegistry определяет параметры репозитория типа реестр пользователей.
|
|||
|
|
properties:
|
|||
|
|
host:
|
|||
|
|
type: string
|
|||
|
|
description: Хост реестра пользователей.
|
|||
|
|
keycloak:
|
|||
|
|
type: object
|
|||
|
|
description: Реестр пользователей, реализуемый keycloak
|
|||
|
|
properties:
|
|||
|
|
robots:
|
|||
|
|
type: object
|
|||
|
|
description: Робот аккаунты реестра пользователей.
|
|||
|
|
properties:
|
|||
|
|
secretRef:
|
|||
|
|
type: object
|
|||
|
|
description: Secret с именами робот аккаунтов.
|
|||
|
|
properties:
|
|||
|
|
name:
|
|||
|
|
type: string
|
|||
|
|
description: Имя Secret
|
|||
|
|
required: ["name"]
|
|||
|
|
x-kubernetes-validations:
|
|||
|
|
- rule: "(has(oldSelf.keycloak) && has(self.keycloak)) ||
|
|||
|
|
(!has(oldSelf.keycloak) && !has(self.keycloak))"
|
|||
|
|
message: "repository type (userRegistry.keycloak) should not change"
|
|||
|
|
oneOf:
|
|||
|
|
- properties:
|
|||
|
|
imageRegistry: {}
|
|||
|
|
required: ["imageRegistry"]
|
|||
|
|
- properties:
|
|||
|
|
packageRegistry: {}
|
|||
|
|
required: ["packageRegistry"]
|
|||
|
|
- properties:
|
|||
|
|
sourceRepository: {}
|
|||
|
|
required: ["sourceRepository"]
|
|||
|
|
- properties:
|
|||
|
|
sourceRepository: {}
|
|||
|
|
required: ["userRegistry"]
|
|||
|
|
x-kubernetes-validations:
|
|||
|
|
- rule: "(has(oldSelf.userRegistry) && has(self.userRegistry)) ||
|
|||
|
|
(!has(oldSelf.userRegistry) && !has(self.userRegistry))"
|
|||
|
|
message: "repository type (userRegistry) should not change"
|
|||
|
|
status:
|
|||
|
|
x-kubernetes-preserve-unknown-fields: true
|
|||
|
|
type: object
|
|||
|
|
properties:
|
|||
|
|
userRegistry:
|
|||
|
|
type: object
|
|||
|
|
properties:
|
|||
|
|
keycloak:
|
|||
|
|
type: object
|
|||
|
|
properties:
|
|||
|
|
masterGroupId:
|
|||
|
|
type: string
|
|||
|
|
subresources:
|
|||
|
|
status: {}
|
|||
|
|
# Namespaced or Cluster
|
|||
|
|
scope: Namespaced
|
|||
|
|
names:
|
|||
|
|
# имя во множественном числе, используемое в URL: /apis/<group>/<version>/<plural>
|
|||
|
|
plural: repositories
|
|||
|
|
# имя в единственном числе, используемое в CLI и для отображения
|
|||
|
|
singular: repository
|
|||
|
|
# вид, обычно CamelCased в единственном числе, указывается в манифестах ресурсов
|
|||
|
|
kind: Repository
|
|||
|
|
# короткие имена для использования в операциях с ресурсами в CLI
|
|||
|
|
shortNames:
|
|||
|
|
- uniprep
|
|||
|
|
- unipreps
|
|||
|
|
categories:
|
|||
|
|
- all
|