charts/apisix-ingress-controller/crds/ApisixRoute.yaml (665 lines of code) (raw):

apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: labels: apisix.apache.org/app: ingress-apisix name: apisixroutes.apisix.apache.org spec: group: apisix.apache.org names: kind: ApisixRoute plural: apisixroutes shortNames: - ar singular: apisixroute scope: Namespaced versions: - additionalPrinterColumns: - jsonPath: .spec.http[].match.hosts name: Hosts priority: 0 type: string - jsonPath: .spec.http[].match.paths name: URIs priority: 0 type: string - jsonPath: .spec.http[].backends[].serviceName name: Target Service(HTTP) priority: 1 type: string - jsonPath: .spec.tcp[].match.ingressPort name: Ingress Server Port(TCP) priority: 1 type: integer - jsonPath: .spec.tcp[].match.backend.serviceName name: Target Service(TCP) priority: 1 type: string - jsonPath: .metadata.creationTimestamp name: Age priority: 0 type: date name: v2beta3 schema: openAPIV3Schema: properties: spec: anyOf: - required: - http - required: - stream properties: http: items: properties: authentication: properties: enable: type: boolean jwtAuth: properties: cookie: type: string header: type: string query: type: string type: object keyAuth: properties: header: type: string type: object type: enum: - basicAuth - keyAuth - jwtAuth - wolfRBAC - hmacAuth type: string required: - enable type: object backends: items: properties: resolveGranularity: enum: - endpoint - service type: string serviceName: minLength: 1 type: string servicePort: anyOf: - type: integer - type: string x-kubernetes-int-or-string: true subset: type: string weight: minimum: 0 type: integer type: object minItems: 1 required: - serviceName - servicePort type: array match: properties: exprs: items: oneOf: - required: - subject - op - value - required: - subject - op - set properties: op: enum: - Equal - NotEqual - GreaterThan - LessThan - In - NotIn - RegexMatch - RegexNotMatch - RegexMatchCaseInsensitive - RegexNotMatchCaseInsensitive type: string set: items: type: string type: array subject: properties: name: minLength: 1 type: string scope: enum: - Cookie - Header - Path - Query type: string required: - scope type: object value: type: string type: object minItems: 1 type: array hosts: items: pattern: ^\*?[0-9a-zA-Z-._]+$ type: string minItems: 1 type: array methods: items: enum: - CONNECT - DELETE - GET - HEAD - OPTIONS - PATCH - POST - PUT - TRACE type: string minItems: 1 type: array paths: items: pattern: ^/[a-zA-Z0-9\-._~%!$&'()+,;=:@/\*]*\*?$ type: string minItems: 1 type: array remoteAddrs: items: type: string minItems: 1 type: array required: - paths type: object name: minLength: 1 type: string plugin_config_name: minLength: 1 type: string plugins: items: properties: config: type: object x-kubernetes-preserve-unknown-fields: true enable: type: boolean name: minLength: 1 type: string type: object required: - name - enable type: array priority: type: integer timeout: properties: connect: type: string read: type: string send: type: string type: object websocket: type: boolean required: - name - match - backends type: object minItems: 1 type: array stream: items: properties: backend: properties: resolveGranularity: enum: - endpoint - service type: string serviceName: minLength: 1 type: string servicePort: anyOf: - type: integer - type: string x-kubernetes-int-or-string: true subset: type: string required: - serviceName - servicePort type: object match: properties: ingressPort: maximum: 65535 minimum: 1 type: integer required: - ingressPort type: object name: minLength: 1 type: string protocol: enum: - TCP - UDP type: string required: - name - match - backend - protocol type: object minItems: 1 type: array type: object status: properties: conditions: items: properties: message: type: string observedGeneration: type: integer reason: type: string status: type: string type: type: string type: object type: array type: object type: object served: true storage: false subresources: status: {} - additionalPrinterColumns: - jsonPath: .spec.http[].match.hosts name: Hosts priority: 0 type: string - jsonPath: .spec.http[].match.paths name: URIs priority: 0 type: string - jsonPath: .spec.http[].backends[].serviceName name: Target Service(HTTP) priority: 1 type: string - jsonPath: .spec.tcp[].match.ingressPort name: Ingress Server Port(TCP) priority: 1 type: integer - jsonPath: .spec.tcp[].match.backend.serviceName name: Target Service(TCP) priority: 1 type: string - jsonPath: .metadata.creationTimestamp name: Age priority: 0 type: date name: v2 schema: openAPIV3Schema: properties: spec: anyOf: - required: - http - required: - stream properties: http: items: anyOf: - required: - name - match - backends - required: - name - match - upstreams properties: authentication: properties: enable: type: boolean jwtAuth: properties: cookie: type: string header: type: string query: type: string type: object keyAuth: properties: header: type: string type: object ldapAuth: properties: base_dn: type: string ldap_uri: type: string uid: type: string use_tls: type: boolean type: object type: enum: - basicAuth - keyAuth - jwtAuth - wolfRBAC - hmacAuth - ldapAuth type: string required: - enable type: object backends: items: properties: resolveGranularity: enum: - endpoint - service type: string serviceName: minLength: 1 type: string servicePort: anyOf: - type: integer - type: string x-kubernetes-int-or-string: true subset: type: string weight: minimum: 0 type: integer type: object minItems: 1 required: - serviceName - servicePort type: array match: properties: exprs: items: oneOf: - required: - subject - op - value - required: - subject - op - set properties: op: enum: - Equal - NotEqual - GreaterThan - GreaterThanEqual - LessThan - LessThanEqual - In - NotIn - RegexMatch - RegexNotMatch - RegexMatchCaseInsensitive - RegexNotMatchCaseInsensitive type: string set: items: type: string type: array subject: properties: name: minLength: 1 type: string scope: enum: - Cookie - Header - Path - Query - Variable type: string required: - scope type: object value: type: string type: object minItems: 1 type: array filter_func: type: string hosts: items: pattern: ^\*?[0-9a-zA-Z-._]+$ type: string minItems: 1 type: array methods: items: enum: - CONNECT - DELETE - GET - HEAD - OPTIONS - PATCH - POST - PUT - TRACE type: string minItems: 1 type: array paths: items: pattern: ^/[a-zA-Z0-9\-._~%!$&'()+,;=:@/\*]*\*?$ type: string minItems: 1 type: array remoteAddrs: items: type: string minItems: 1 type: array required: - paths type: object name: minLength: 1 type: string plugin_config_name: minLength: 1 type: string plugins: items: properties: config: type: object x-kubernetes-preserve-unknown-fields: true enable: type: boolean name: minLength: 1 type: string secretRef: type: string type: object required: - name - enable type: array priority: type: integer timeout: properties: connect: type: string read: type: string send: type: string type: object upstreams: description: Upstreams refer to ApisixUpstream CRD items: description: ApisixRouteUpstreamReference contains a ApisixUpstream CRD reference properties: name: type: string weight: type: integer type: object type: array websocket: type: boolean type: object minItems: 1 type: array ingressClassName: type: string stream: items: properties: backend: properties: resolveGranularity: enum: - endpoint - service type: string serviceName: minLength: 1 type: string servicePort: anyOf: - type: integer - type: string x-kubernetes-int-or-string: true subset: type: string required: - serviceName - servicePort type: object match: properties: host: type: string ingressPort: maximum: 65535 minimum: 1 type: integer required: - ingressPort type: object name: minLength: 1 type: string plugins: items: properties: config: type: object x-kubernetes-preserve-unknown-fields: true enable: type: boolean name: minLength: 1 type: string secretRef: type: string type: object required: - name - enable type: array protocol: enum: - TCP - UDP type: string required: - name - match - backend - protocol type: object minItems: 1 type: array type: object status: properties: conditions: items: properties: message: type: string observedGeneration: type: integer reason: type: string status: type: string type: type: string type: object type: array type: object type: object served: true storage: true subresources: status: {}