freeleaps-ops/freeleaps-devops-reconciler/helm-pkg/reconciler/templates/crds/deploymentrecords.yaml
zhenyus eae6ba99e2 refactor(devsvc): restructure reconciler Helm chart and remove deprecated files
- Deleted Jenkinsfile as CI/CD configuration is now handled differently.
- Updated Chart.yaml to reflect new service name and versioning.
- Enhanced values.yaml and values.alpha.yaml with comprehensive operator configuration and environment settings.
- Removed obsolete templates for deployment, service, ingress, and monitoring.
- Streamlined configuration for RabbitMQ, Jenkins, and ArgoCD integration.

Signed-off-by: zhenyus <zhenyus@mathmast.com>
2025-07-31 23:21:24 +08:00

139 lines
4.8 KiB
YAML

{{- if .Values.crds.install }}
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: deploymentrecords.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: DeploymentRecord
listKind: DeploymentRecordList
singular: deploymentrecord
plural: deploymentrecords
shortNames:
- deploy
- dr
versions:
- name: v1alpha1
served: true
storage: true
schema:
openAPIV3Schema:
type: object
required: ['spec']
properties:
spec:
type: object
required:
- projectId
- version
- environment
properties:
projectId:
type: string
description: "Reference to DevOpsProject ID"
version:
type: string
description: "Application version to deploy"
environment:
type: string
enum: ["dev", "staging", "prod"]
description: "Target environment"
gitCommitHash:
type: string
description: "Git commit hash for this deployment"
buildTrigger:
type: string
enum: ["manual", "webhook", "schedule", "api"]
default: "manual"
description: "What triggered this deployment"
operation:
type: string
enum: ["start", "terminate", "restart"]
default: "start"
description: "Deployment operation to perform"
ttlSeconds:
type: integer
minimum: 0
description: "TTL for this deployment in seconds"
parameters:
type: object
additionalProperties:
type: string
description: "Additional deployment parameters"
status:
type: object
properties:
deploymentRecord:
type: object
properties:
status:
type: string
enum: ["running", "success", "failed", "terminated"]
phase:
type: string
enum: ["initializing", "commit-message-linting", "execute-mode-detection", "code-changes-detection", "build-agent-setup", "dependencies-resolving", "semantic-releasing", "compilation-packaging", "image-builder-setup", "image-building", "app-version-updating", "deployment-triggering", "deployment-syncing", "deployment-verification", "resource-cleanup", "finished"]
startTime:
type: string
format: date-time
completionTime:
type: string
format: date-time
lastProbeTime:
type: string
format: date-time
jenkinsBuildNumber:
type: integer
description: "Jenkins build number"
jenkinsBuildUrl:
type: string
description: "Jenkins build URL"
argoSyncStatus:
type: string
description: "Argo CD sync status"
message:
type: string
description: "Status message"
networkResources:
type: object
properties:
domain:
type: string
certificate:
type: string
ingress:
type: string
subresources:
status: {}
additionalPrinterColumns:
- name: Project ID
type: string
jsonPath: .spec.projectId
- name: Version
type: string
jsonPath: .spec.version
- name: Environment
type: string
jsonPath: .spec.environment
- name: Status
type: string
jsonPath: .status.deploymentRecord.status
- name: Phase
type: string
jsonPath: .status.deploymentRecord.phase
- name: Build
type: integer
jsonPath: .status.deploymentRecord.jenkinsBuildNumber
- name: Age
type: date
jsonPath: .metadata.creationTimestamp
{{- end }}