145 lines
4.3 KiB
YAML
145 lines
4.3 KiB
YAML
|
|
{{- if .Values.crds.install }}
|
||
|
|
apiVersion: apiextensions.k8s.io/v1
|
||
|
|
kind: CustomResourceDefinition
|
||
|
|
metadata:
|
||
|
|
name: devopsprojects.freeleaps.com
|
||
|
|
labels:
|
||
|
|
{{- include "freeleaps-devops-reconciler.labels" . | nindent 4 }}
|
||
|
|
annotations:
|
||
|
|
"helm.sh/hook": pre-install,pre-upgrade
|
||
|
|
"helm.sh/hook-weight": "-5"
|
||
|
|
{{- if .Values.crds.keep }}
|
||
|
|
"helm.sh/resource-policy": keep
|
||
|
|
{{- end }}
|
||
|
|
spec:
|
||
|
|
group: freeleaps.com
|
||
|
|
scope: Namespaced
|
||
|
|
names:
|
||
|
|
kind: DevOpsProject
|
||
|
|
listKind: DevOpsProjectList
|
||
|
|
singular: devopsproject
|
||
|
|
plural: devopsprojects
|
||
|
|
shortNames:
|
||
|
|
- dop
|
||
|
|
- dops
|
||
|
|
versions:
|
||
|
|
- name: v1alpha1
|
||
|
|
served: true
|
||
|
|
storage: true
|
||
|
|
schema:
|
||
|
|
openAPIV3Schema:
|
||
|
|
type: object
|
||
|
|
required: ['spec']
|
||
|
|
properties:
|
||
|
|
metadata:
|
||
|
|
type: object
|
||
|
|
properties:
|
||
|
|
name:
|
||
|
|
type: string
|
||
|
|
maxLength: 63
|
||
|
|
spec:
|
||
|
|
type: object
|
||
|
|
required:
|
||
|
|
- projectName
|
||
|
|
- projectId
|
||
|
|
- git
|
||
|
|
- registry
|
||
|
|
- environments
|
||
|
|
properties:
|
||
|
|
projectName:
|
||
|
|
type: string
|
||
|
|
description: "Human readable project name"
|
||
|
|
projectId:
|
||
|
|
type: string
|
||
|
|
description: "Unique project identifier"
|
||
|
|
pattern: "^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"
|
||
|
|
git:
|
||
|
|
type: object
|
||
|
|
required:
|
||
|
|
- url
|
||
|
|
- branch
|
||
|
|
properties:
|
||
|
|
url:
|
||
|
|
type: string
|
||
|
|
description: "Git repository URL"
|
||
|
|
branch:
|
||
|
|
type: string
|
||
|
|
description: "Default git branch"
|
||
|
|
default: "main"
|
||
|
|
credentialsRef:
|
||
|
|
type: object
|
||
|
|
properties:
|
||
|
|
name:
|
||
|
|
type: string
|
||
|
|
namespace:
|
||
|
|
type: string
|
||
|
|
registry:
|
||
|
|
type: object
|
||
|
|
required:
|
||
|
|
- url
|
||
|
|
- project
|
||
|
|
properties:
|
||
|
|
url:
|
||
|
|
type: string
|
||
|
|
description: "Container registry URL"
|
||
|
|
project:
|
||
|
|
type: string
|
||
|
|
description: "Registry project/namespace"
|
||
|
|
credentialsRef:
|
||
|
|
type: object
|
||
|
|
properties:
|
||
|
|
name:
|
||
|
|
type: string
|
||
|
|
namespace:
|
||
|
|
type: string
|
||
|
|
environments:
|
||
|
|
type: array
|
||
|
|
items:
|
||
|
|
type: object
|
||
|
|
required:
|
||
|
|
- name
|
||
|
|
- branch
|
||
|
|
properties:
|
||
|
|
name:
|
||
|
|
type: string
|
||
|
|
enum: ["dev", "staging", "prod"]
|
||
|
|
branch:
|
||
|
|
type: string
|
||
|
|
autoSync:
|
||
|
|
type: boolean
|
||
|
|
default: false
|
||
|
|
status:
|
||
|
|
type: object
|
||
|
|
properties:
|
||
|
|
devopsProject:
|
||
|
|
type: object
|
||
|
|
properties:
|
||
|
|
status:
|
||
|
|
type: string
|
||
|
|
enum: ["invalid", "valid", "synced"]
|
||
|
|
synced:
|
||
|
|
type: boolean
|
||
|
|
ready:
|
||
|
|
type: boolean
|
||
|
|
lastProbeTime:
|
||
|
|
type: string
|
||
|
|
format: date-time
|
||
|
|
subresources:
|
||
|
|
status: {}
|
||
|
|
additionalPrinterColumns:
|
||
|
|
- name: Project ID
|
||
|
|
type: string
|
||
|
|
jsonPath: .spec.projectId
|
||
|
|
- name: Git URL
|
||
|
|
type: string
|
||
|
|
jsonPath: .spec.git.url
|
||
|
|
- name: Status
|
||
|
|
type: string
|
||
|
|
jsonPath: .status.devopsProject.status
|
||
|
|
- name: Ready
|
||
|
|
type: boolean
|
||
|
|
jsonPath: .status.devopsProject.ready
|
||
|
|
- name: Age
|
||
|
|
type: date
|
||
|
|
jsonPath: .metadata.creationTimestamp
|
||
|
|
{{- end }}
|