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: {}