freeleaps-ops/freeleaps-devops-reconciler/helm-pkg/reconciler/templates/crds/jenkinssettings.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

136 lines
4.3 KiB
YAML

{{- if .Values.crds.install }}
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: jenkinssettings.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: JenkinsSetting
listKind: JenkinsSettingList
singular: jenkinssetting
plural: jenkinssettings
shortNames:
- jenkins
- jen
versions:
- name: v1alpha1
served: true
storage: true
schema:
openAPIV3Schema:
type: object
required: ['spec']
properties:
spec:
type: object
required:
- projectId
- gitUrl
- environments
properties:
projectId:
type: string
description: "Reference to DevOpsProject ID"
gitUrl:
type: string
description: "Git repository URL for Jenkins pipelines"
gitCredentialsId:
type: string
description: "Jenkins credentials ID for Git access"
environments:
type: array
items:
type: object
required:
- name
- branch
properties:
name:
type: string
enum: ["dev", "staging", "prod"]
branch:
type: string
description: "Git branch for this environment"
pipelineScript:
type: string
description: "Custom Jenkinsfile content"
buildTriggers:
type: object
properties:
webhook:
type: boolean
default: true
schedule:
type: string
description: "Cron schedule for builds"
folder:
type: object
properties:
name:
type: string
description: "Jenkins folder name"
description:
type: string
description: "Jenkins folder description"
status:
type: object
properties:
jenkinsSettings:
type: object
properties:
status:
type: string
enum: ["invalid", "valid", "synced"]
synced:
type: boolean
ready:
type: boolean
lastProbeTime:
type: string
format: date-time
folderUrl:
type: string
description: "Jenkins folder URL"
jobs:
type: array
items:
type: object
properties:
name:
type: string
environment:
type: string
url:
type: string
subresources:
status: {}
additionalPrinterColumns:
- name: Project ID
type: string
jsonPath: .spec.projectId
- name: Git URL
type: string
jsonPath: .spec.gitUrl
- name: Environments
type: string
jsonPath: .spec.environments[*].name
- name: Status
type: string
jsonPath: .status.jenkinsSettings.status
- name: Ready
type: boolean
jsonPath: .status.jenkinsSettings.ready
- name: Age
type: date
jsonPath: .metadata.creationTimestamp
{{- end }}