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

162 lines
5.2 KiB
YAML

{{- if .Values.crds.install }}
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: ingressresources.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: IngressResources
listKind: IngressResourcesList
singular: ingressresources
plural: ingressresources
shortNames:
- ingress
- ir
versions:
- name: v1alpha1
served: true
storage: true
schema:
openAPIV3Schema:
type: object
required: ['spec']
properties:
spec:
type: object
required:
- projectId
- environment
- domain
properties:
projectId:
type: string
description: "Reference to DevOpsProject ID"
environment:
type: string
enum: ["dev", "staging", "prod"]
description: "Target environment"
domain:
type: string
description: "Domain name for the ingress"
serviceName:
type: string
description: "Backend service name"
servicePort:
type: integer
description: "Backend service port"
default: 80
tlsEnabled:
type: boolean
description: "Enable TLS/SSL"
default: true
certificateIssuer:
type: string
description: "cert-manager ClusterIssuer name"
default: "letsencrypt-prod"
ingressClassName:
type: string
description: "Ingress class name"
default: "nginx"
annotations:
type: object
additionalProperties:
type: string
description: "Additional ingress annotations"
paths:
type: array
items:
type: object
required:
- path
properties:
path:
type: string
description: "Path pattern"
pathType:
type: string
enum: ["Exact", "Prefix", "ImplementationSpecific"]
default: "Prefix"
serviceName:
type: string
description: "Override service name for this path"
servicePort:
type: integer
description: "Override service port for this path"
status:
type: object
properties:
ingressResources:
type: object
properties:
status:
type: string
enum: ["invalid", "creating", "ready", "failed"]
ready:
type: boolean
lastProbeTime:
type: string
format: date-time
domain:
type: object
properties:
name:
type: string
created:
type: boolean
dnsReady:
type: boolean
certificate:
type: object
properties:
name:
type: string
issued:
type: boolean
ready:
type: boolean
ingress:
type: object
properties:
name:
type: string
created:
type: boolean
ready:
type: boolean
loadBalancerIP:
type: string
subresources:
status: {}
additionalPrinterColumns:
- name: Project ID
type: string
jsonPath: .spec.projectId
- name: Environment
type: string
jsonPath: .spec.environment
- name: Domain
type: string
jsonPath: .spec.domain
- name: TLS
type: boolean
jsonPath: .spec.tlsEnabled
- name: Status
type: string
jsonPath: .status.ingressResources.status
- name: Ready
type: boolean
jsonPath: .status.ingressResources.ready
- name: Age
type: date
jsonPath: .metadata.creationTimestamp
{{- end }}