description:"Ingress class, if not specified then all citrix ingress controllers in the cluster will process the resource otherwise only the controller with that ingress class will process this resource"
rewrite-policies:
type:array
items:
type:object
properties:
servicenames:
description:'Name of the services that needs to be binded to rewrite policy.'
type:array
items:
type:string
maxLength:127
goto-priority-expression:
description:'Expression or other value specifying the next policy to be
evaluated if the current policy evaluates to TRUE.
Specify one of the following values:
*NEXT - Evaluate the policy with the next higher priority number.
*END - End policy evaluation.
Default value of goto-priority-expression:END'
type:string
maxLength:1499
logpackets:
type:object
description:'Adds an audit message action.
The action specifies whether to log the message, and to which log.'
properties:
logexpression:
description:'Default-syntax expression that defines the format and content of the log message.'
type:string
maxLength:7991
loglevel:
description:'Audit log level, which specifies the severity level of the log message being generated.'
description:"Ingress class, if not specified then all citrix ingress controllers in the cluster will process the resource otherwise only the controller with that ingress class will process this resource"
servicenames:
description:'Name of the services to which the ratelimit policies are applied.'
type:array
items:
type:string
maxLength:127
selector_keys:
type:object
description:'Traffic match criteria to which apply above rate-limit/throttling. All keys are applied as AND condition. If no keys are specified, rate-limit applies at service level'
properties:
basic:
type:object
description:"Basic traffic stream selection criteria to which to apply the ratelimit"
properties:
path:
type:array
description:"api resource path prefix match. e.g. /api/v1/products"
items:
type:string
method:
type:array
items:
type:string
enum:['GET','PUT','POST','DELETE']
header_name:
description:"HTTP header that identifies the unique API client for e.g. X-apikey"
type:string
per_client_ip:
description:"Setting this applies the throttling limit to each unique Client IP address accessing the API resource"
type:boolean
req_threshold:
description:'Max requests per timeslice units to be allowed'
type:integer
timeslice:
description:'Timeslice in miliseconds in multiple of 10. Defaults to 1000 miliseconds'
type:integer
limittype:
description:"Burst mode or smooth. Defaults to smooth limittype if not specified"
type:string
enum:['BURSTY','SMOOTH']
throttle_action:
type:string
enum:['DROP','RESET','REDIRECT','RESPOND']
description:"Drop will drop the requests exceeding limits, RESET will reset the client connection, Redirect will redirect to specified URL, respond will respond with 429 'Exceeded allowed rate of requests'"
redirect_url:
type:string
description:"Redirect-URL"
logpackets:
type:object
description:'Adds an audit message action. The action specifies whether to log the message, and to which log.'
properties:
logexpression:
description:'Default-syntax expression that defines the format and content of the log message.'
type:string
maxLength:7991
loglevel:
description:'Audit log level, which specifies the severity level of the log message being generated.'
description:"Ingress class, if not specified then all citrix ingress controllers in the cluster will process the resource otherwise only the controller with that ingress class will process this resource"
servicenames:
description:|+
'Name of the services for which the policies applied'
type:array
items:
type:string
maxLength:63
authentication_mechanism:
type:object
description:|+
'Authentication mechanism. Options:using forms or using request header.
Default is Authentication using request header, when no option is specified'
properties:
using_request_header:
description:|+
'Enable user authentication using request header. Use when the credentials
or api keys are passed in a header. For example, when using Basic, Digest,
Bearer authentication or api keys.
When authentication using forms is provided, this is set to OFF'
type:string
using_forms:
type:object
description:'Enables authentication using forms. Use with user/web authentication.'
properties:
authentication_host:
description:|+
'Fully qualified domain name (FQDN) for authentication.
This FQDN should be unique and should resolve to frontend IP of
ADC with Ingress/service type LoadBalancer (or) vip of Listener CRD'
type:string
maxLength:255
authentication_host_cert:
description:|+
'Name of the SSL certificate to be used with authentication_host.
This certificate is mandatory while using_forms'
type:object
properties:
tls_secret:
type:string
description:'Name of the Kubernetes Secret of type tls referring to Certificate'
pattern:'^[a-z0-9]([-a-z0-9]*[a-z0-9])?$'
preconfigured:
type:string
maxLength:63
description:|+
'Preconfigured SSL certkey name on ADC with the
certificate and key already added on ADC'
oneOf:
- properties:
required:[tls_secret]
- properties:
required:[preconfigured]
ingress_name:
description:|+
'Ingress name for which the authentication using forms
is applicable.'
type:string
maxLength:63
lb_service_name:
description:|+
'Service of type LoadBalancer for which the authentication using forms
is applicable.'
type:string
maxLength:63
listener_name:
description:|+
'Listener CRD name for which the authentication using forms is applicable.'
type:string
maxLength:63
vip:
description:|+
'Frontend IP of ingress for which the authentication
using forms is applicable. This refers to frontend-ip provided
with Ingress. It is suggested to use vip, if more than one Ingress
description:'authorization scopes required for selected resource saved as claims or attributes'
type:array
items:
type:object
properties:
name:
description:'name of the claim/attribute to check'
type:string
maxLength:127
values:
description:'list of claim values required for the request'
type:array
items:
type:string
maxLength:127
minItems:1
required:
- name
- values
required:
- claims
expression:
description:'ADC syntax expression for authorization'
type:string
maxLength:1229
oneOf:
- required:[resource]
- required:[expression]
---
apiVersion:apiextensions.k8s.io/v1
kind:CustomResourceDefinition
metadata:
name:listeners.citrix.com
{{- if .Values.crds.retainOnDelete }}
annotations:
"helm.sh/resource-policy": keep
{{- end }}
spec:
group:citrix.com
version:null
names:
kind:Listener
plural:listeners
singular:listener
scope:Namespaced
versions:
- name:v1
served:true
storage:true
schema:
openAPIV3Schema:
required:[spec]
type:object
properties:
status:
type:object
properties:
state:
type:string
status_message:
type:string
spec:
type:object
required:[protocol]
properties:
ingressclass:
type:string
description:"Ingress class, if not specified then all citrix ingress controllers in the cluster will process the resource otherwise only the controller with that ingress class will process this resource"
protocol:
type:string
enum:["https","http"]
description:"Protocol for this listener"
vip:
type:string
description:"VIP address, Optional for CPX, required for Tier-1 deployments"
secondaryVips:
type:array
description:"An array of Secondary VIPs. All the VIPs will be part of an ipset"
minItems:1
items:
type:string
redirectPort:
type:integer
minimum:1
maximum:65535
description:"Port from which http traffic should be redirected to https"
port:
type:integer
minimum:1
maximum:65535
certificates:
type:array
description:"certificates attached to the endpoints - Not applicable for HTTP"
minItems:1
items:
type:object
properties:
preconfigured:
type:string
description:"Preconfigured Certificate name on ADC "
secret:
type:object
description:"Kuberentes secret object"
required:[name]
properties:
name:
type:string
description:"name of the Kubernetes Secret object where Cert is located"
pattern:'^[a-z0-9]([-a-z0-9]*[a-z0-9])?$'
namespace:
type:string
description:"Namespace of the kubernetes secret object; Default is same namespace where the Listener object is located"
pattern:'^[a-z0-9]([-a-z0-9]*[a-z0-9])?$'
default:
type:boolean
description:"Only one of the certificate can be marked as default which will be presented if none of the cert matches with the hostname"
oneOf:
- required:["preconfigured"]
- required:["secret"]
policies:
type:object
description:"Policies attached to the Listener"
properties:
httpprofile:
type:object
description:"HTTP profile configurations for the Listener, HTTP level configurations"
properties:
preconfigured:
type:string
description:"Preconfigured or Built-in HTTP profile name"
config:
type:object
description:"HTTP profile configuration for the listener. For individual fields, refer:https://developer-docs.citrix.com/projects/netscaler-nitro-api/en/12.0/configuration/ns/nshttpprofile/nshttpprofile/ Name field is auto populated"
additionalProperties:
type:string
oneOf:
- required:["preconfigured"]
- required:["config"]
tcpprofile:
type:object
description:"TCP level configurations, uses ns tcpprofile of citrix ADC"
properties:
preconfigured:
description:"Preconfigured or Built-in TCP profile name"
type:string
config:
type:object
description:"TCPprofile configurations for the listener. For individual fields refer: https://developer-docs.citrix.com/projects/netscaler-nitro-api/en/12.0/configuration/ns/nstcpprofile/ ; Name field is auto populated"
additionalProperties:
type:string
oneOf:
- required:["preconfigured"]
- required:["config"]
csvserverConfig:
type:object
description:"CS Vserver configuration for the listener"
additionalProperties:
type:string
sslprofile:
type:object
description:"SSL profile configuration"
properties:
preconfigured:
type:string
description:"SSL profile which is preconfigured in ADC. Ciphers bound to the profile is not overriden"
config:
description:"Citrix ADC frontend SSL profile configurations. Refer:https://developer-docs.citrix.com/projects/netscaler-nitro-api/en/12.0/configuration/ssl/sslprofile/ for all configurations; Name field is auto generated"
type:object
additionalProperties:
type:string
oneOf:
- required:["preconfigured"]
- required:["config"]
sslciphers:
type:array
description:"List of ciphers to be bound to the ssl profile for the listener. Priority is as per the order in the list. A cipher suite, predefined cipher group or User created cipher group can be mentioned"
minItems:1
items:
type:string
description:"Cipher suite, cipher group name"
analyticsprofile:
type:object
description:"Analytics profile configuration"
properties:
preconfigured:
type:array
description:"Preconfigured Analytics profile that needs to be bound to the vserver"
minItems:1
items:
type:string
description:"Name of the analytics profile preconfigured that will be bound to the Vserver"
config:
type:array
description:"An array of analytics to be enabled"
minItems:1
items:
type:object
description:"Anlytics to be enabled"
required:['type']
properties:
type:
description:"Analytics profile to be enabled, you can enable one or more of the webinsight, tcpinsight, securityinsight, videoinsight, hdxinsight, gatewayinsight, timeseries, lsninsight, botinsight "
description:"Additional parameters for analytics profile. Please refer:https://developer-docs.citrix.com/projects/citrix-adc-nitro-api-reference/en/latest/configuration/analytics/analyticsprofile/"
additionalProperties:
type:string
oneOf:
- required:["preconfigured"]
- required:["config"]
routes:
type:array
description:"List of route objects attached to the listener"
minItems:1
items:
type:object
properties:
name:
type:string
description:"Name of the HTTPRoute object"
pattern:'^[a-z0-9]([-a-z0-9]*[a-z0-9])?$'
namespace:
type:string
description:"Namespace of the HTTPRoute object"
pattern:'^[a-z0-9]([-a-z0-9]*[a-z0-9])?$'
labelSelector:
description:"Labels key value pair, if the route carries the same labels, it is automatically attached"
type:object
additionalProperties:
type:string
oneOf:
- required:[name, namespace]
- required:[labelSelector]
defaultAction:
type:object
description:"Default action for the listener: One of Backend or Redirect"
properties:
backend:
type:object
oneOf:
- required:[kube]
properties:
kube:
type:object
required:[service, port]
properties:
service:
description:"Name of the backend service"
type:string
pattern:'^[a-z0-9]([-a-z0-9]*[a-z0-9])?$'
port:
description:"Service port"
type:integer
minimum:1
maximum:65535
namespace:
description:"Service namespace"
type:string
pattern:'^[a-z0-9]([-a-z0-9]*[a-z0-9])?$'
backendConfig:
description:"General backend service options"
type:object
properties:
secure_backend:
description:"Use Secure communications to the backends"
type:boolean
lbConfig:
description:"Citrix ADC LB vserver configurations for the backend. Refer: https://developer-docs.citrix.com/projects/netscaler-nitro-api/en/12.0/configuration/load-balancing/lbvserver/lbvserver/ for all configurations"
type:object
additionalProperties:
type:string
servicegroupConfig:
description:"Citrix ADC service group configurations for the backend; Refer: https://developer-docs.citrix.com/projects/netscaler-nitro-api/en/12.0/configuration/basic/servicegroup/servicegroup/ for all configurations"
type:object
additionalProperties:
type:string
redirect:
type:object
oneOf:
- required:[targetExpression]
- required:[hostRedirect]
- required:[httpsRedirect]
properties:
httpsRedirect:
description:"Change the scheme from http to https keeping URL intact"
type:boolean
hostRedirect:
description:"Host name specified is used for redirection with URL intact"
type:string
targetExpression:
description:"A target can be specified using Citrix ADC policy expression"
type:string
responseCode:
description:"Default response code is 302, which can be customised using this attribute"
type:integer
minimum:100
maximum:599
oneOf:
- required:["backend"]
- required:["redirect"]
subresources:
# status enables the status subresource.
status:{}
---
apiVersion:apiextensions.k8s.io/v1
kind:CustomResourceDefinition
metadata:
name:httproutes.citrix.com
{{- if .Values.crds.retainOnDelete }}
annotations:
"helm.sh/resource-policy": keep
{{- end }}
spec:
group:citrix.com
version:null
names:
kind:HTTPRoute
plural:httproutes
singular:httproute
scope:Namespaced
versions:
- name:v1
served:true
storage:true
schema:
openAPIV3Schema:
type:object
required:[spec]
properties:
status:
type:object
properties:
state:
type:string
status_message:
type:string
spec:
type:object
required:[rules]
properties:
ingressclass:
type:string
description:"Ingress class, if not specified then all citrix ingress controllers in the cluster will process the resource otherwise only the controller with that ingress class will process this resource"
hostname:
type:array
description:"List of domain names that share the same route, default is '*'"
minItems:1
items:
type:string
description:"Domain name"
rules:
type:array
description:"List Content routing rules with an action defined"
minItems:1
items:
type:object
required:[name, action]
properties:
name:
type:string
description:"A name to represent the rule, this is used as an identifier in content routing policy name in ADC"
minLength:1
maxLength:20
pattern:'^[a-z0-9]([-a-z0-9]*[a-z0-9])?$'
match:
type:array
description:"List of rules with same action"
minItems:1
items:
type:object
anyOf:
- required:[path]
- required:[headers]
- required:[cookies]
- required:[queryParams]
- required:[method]
- required:[policyExpression]
properties:
path:
type:object
description:"URL Path based content routing"
properties:
prefix:
type:string
description:"URL path matches the prefix expression"
exact:
type:string
description:"URL Path must match exact path"
regex:
type:string
description:"PCRE based regex expression for path matching"
headers:
type:array
description:"List of header for content routing - Must match all the rules- Treated as AND condition if more than 1 rule"
minItems:1
items:
type:object
description:"Header details for content routing, Check for existence of a header or header name-value match"
properties:
headerName:
type:object
description:"Header name based content routing, Here existence of header is used for routing"
properties:
exact:
type:string
description:"Header Name - treated as exact must exist"
contains:
type:string
description:"Header Name - A header must exist that contain the string the name"
regex:
type:string
description:"header Name - treated as PCRE regex expression"
not:
type:boolean
description:"Default False, if present, rules are inverted. I.e header name must not exist"
oneOf:
- required:[exact]
- required:[contains]
- required:[regex]
headerValue:
type:object
description:"Header Name and Value based match"
properties:
name:
type:string
description:"Header name that must match the value"
exact:
type:string
description:"Header value - treated as exact"
contains:
type:string
description:"Header value - treated as contains"
regex:
type:string
description:"header value - treated as PCRE regex expression"
not:
type:boolean
description:"Default False, if present, rules are inverted. I.e header if present must not match the value"
oneOf:
- required:[name, exact]
- required:[name, contains]
- required:[name, regex]
queryParams:
type:array
description:"List of Query parameters for content routing - Must match all the rules- Treated as AND condition if more than 1 rule"
minItems:1
items:
type:object
description:"Query parameters Name and Value based match"
properties:
name:
type:string
description:"Query name that must match the value. If no value is specified, matches with any value"
exact:
type:string
description:"Query value - Exact match"
contains:
type:string
description:"Query value - value must have the string(substring)"
regex:
type:string
description:"Query value - Value must match this regex patterm"
not:
type:boolean
description:"Default False, if present, rules are inverted. I.e query if present must not match the value"
anyOf:
- required:[name]
- oneOf:
- required:[name, exact]
- required:[name, contains]
- required:[name, regex]
cookies:
type:array
description:"List of Cookie params for content routing - Must match all the rules- Treated as AND condition if more than 1 rule"
minItems:1
items:
type:object
description:"Cookie based routing"
properties:
name:
type:string
description:"cookie name that must match the value. If no value specified, it matches with any value"
exact:
type:string
description:"cookie value - treated as exact"
contains:
type:string
description:"cookie value - treated as substring"
regex:
type:string
description:"cookie value - treated as PCRE regex expression"
not:
type:boolean
description:"Default False, if present, rules are inverted. I.e cookie if present must not match the value"
anyOf:
- required:[name]
- oneOf:
- required:[name, exact]
- required:[name, contains]
- required:[name, regex]
method:
type:string
description:"HTTP method for content routing eg: POST, PUT, DELETE etc"
description:"Use Secure communications to the backends"
type:boolean
lbConfig:
description:"Citrix ADC LB vserver configurations for the backend. Refer: https://developer-docs.citrix.com/projects/netscaler-nitro-api/en/12.0/configuration/load-balancing/lbvserver/lbvserver/ for all configurations"
type:object
additionalProperties:
type:string
servicegroupConfig:
description:"Citrix ADC service group configurations for the backend; Refer: https://developer-docs.citrix.com/projects/netscaler-nitro-api/en/12.0/configuration/basic/servicegroup/servicegroup/ for all configurations"
type:object
additionalProperties:
type:string
redirect:
type:object
oneOf:
- required:[targetExpression]
- required:[hostRedirect]
- required:[httpsRedirect]
properties:
httpsRedirect:
description:"Change the scheme from http to https keeping URL intact"
type:boolean
hostRedirect:
description:"Host name specified is used for redirection with URL intact"
type:string
targetExpression:
description:"A target can be specified using Citrix ADC policy expression"
type:string
responseCode:
description:"Default response code is 302, which can be customised using this attribute"
type:integer
minimum:100
maximum:599
oneOf:
- required:["backend"]
- required:["redirect"]
subresources:
# status enables the status subresource.
status:{}
---
apiVersion:apiextensions.k8s.io/v1
kind:CustomResourceDefinition
metadata:
# name must match the spec fields below, and be in the form: <plural>.<group>
name:continuousdeployments.citrix.com
{{- if .Values.crds.retainOnDelete }}
annotations:
"helm.sh/resource-policy": keep
{{- end }}
spec:
group:citrix.com
names:
kind:continuousdeployment
plural:continuousdeployments
singular:continuousdeployment
scope:Namespaced
versions:
- name:v1
served:true
storage:true
schema:
openAPIV3Schema:
type:object
properties:
spec:
type:object
x-kubernetes-preserve-unknown-fields:true
properties:
cronSpec:
type:integer
---
apiVersion:apiextensions.k8s.io/v1
kind:CustomResourceDefinition
metadata:
name:wafs.citrix.com
{{- if .Values.crds.retainOnDelete }}
annotations:
"helm.sh/resource-policy": keep
{{- end }}
spec:
group:citrix.com
names:
kind:waf
plural:wafs
singular:waf
scope:Namespaced
versions:
- name:v1
served:true
storage:true
subresources:
status:{}
additionalPrinterColumns:
- name:Status
type:string
description:"Current Status of the CRD"
jsonPath:.status.state
- name:Message
type:string
description:"Status Message"
jsonPath:.status.status_message
schema:
openAPIV3Schema:
type:object
required:[spec]
properties:
status:
type:object
properties:
state:
type:string
status_message:
type:string
spec:
type:object
properties:
ingressclass:
type:string
description:"Ingress class, if not specified then all citrix ingress controllers in the cluster will process the resource otherwise only the controller with that ingress class will process this resource"
servicenames:
description:'Name of the services to which the waf policies are applied.'
type:array
items:
type:string
maxLength:127
application_type:
description:'Type of applications to protect'
type:array
items:
type:string
enum:['HTML','JSON','XML']
signatures:
description:'Location of external signature file'
type:string
redirect_url:
description:'When a URL is blocked/down, redirect_url represents the alternate URL where the client requests should be sent.'
type:string
html_error_object:
description:'Location of customized error page to respond when html or common violation are hit'
type:string
xml_error_object:
description:'Location of customized error page to respond when xml violations are hit'
type:string
json_error_object:
description:'Location of customized error page to respond when json violations are hit'
description:'To control what traffic to be inspected by Web Application Firewall. If you do not provide the target, everything will be inspected by default'
description:'To fine tune application firewall security checks default settings'
type:object
properties:
common:
type:object
x-kubernetes-preserve-unknown-fields:true
html:
type:object
x-kubernetes-preserve-unknown-fields:true
json:
type:object
x-kubernetes-preserve-unknown-fields:true
xml:
type:object
x-kubernetes-preserve-unknown-fields:true
relaxations:
description:'Section which contains relaxation rules for known traffic and false positives'
type:object
properties:
common:
type:object
x-kubernetes-preserve-unknown-fields:true
html:
type:object
x-kubernetes-preserve-unknown-fields:true
json:
type:object
x-kubernetes-preserve-unknown-fields:true
xml:
type:object
x-kubernetes-preserve-unknown-fields:true
enforcements:
description:'Section which contains enforcement or restriction rules'
type:object
properties:
common:
type:object
x-kubernetes-preserve-unknown-fields:true
html:
type:object
x-kubernetes-preserve-unknown-fields:true
json:
type:object
x-kubernetes-preserve-unknown-fields:true
xml:
type:object
x-kubernetes-preserve-unknown-fields:true
---
apiVersion:apiextensions.k8s.io/v1
kind:CustomResourceDefinition
metadata:
name:bots.citrix.com
{{- if .Values.crds.retainOnDelete }}
annotations:
"helm.sh/resource-policy": keep
{{- end }}
spec:
group:citrix.com
names:
kind:bot
plural:bots
singular:bot
scope:Namespaced
versions:
- name:v1
served:true
storage:true
subresources:
status:{}
additionalPrinterColumns:
- name:Status
type:string
description:"Current Status of the CRD"
jsonPath:.status.state
- name:Message
type:string
description:"Status Message"
jsonPath:.status.status_message
schema:
openAPIV3Schema:
type:object
required:[spec]
properties:
status:
type:object
properties:
state:
type:string
status_message:
type:string
spec:
type:object
properties:
ingressclass:
type:string
description:"Ingress class, if not specified then all citrix ingress controllers in the cluster will process the resource otherwise only the controller with that ingress class will process this resource"
servicenames:
description:'Name of the services to which the bot policies are applied.'
type:array
items:
type:string
maxLength:127
signatures:
description:'Location of external bot signature file'
type:string
redirect_url:
description:'url to redirect when bot violation is hit'
type:string
target:
description:'To control what traffic to be inspected by BOT. If you do not provide the target, everything will be inspected by default'
description:'Section which contains binding rules for bot security checks'
type:object
properties:
allow_list:
type:array
items:
type:object
properties:
subnet:
type:object
x-kubernetes-preserve-unknown-fields:true
ip:
type:object
x-kubernetes-preserve-unknown-fields:true
expression:
type:object
x-kubernetes-preserve-unknown-fields:true
block_list:
type:array
items:
type:object
properties:
subnet:
type:object
x-kubernetes-preserve-unknown-fields:true
ip:
type:object
x-kubernetes-preserve-unknown-fields:true
expression:
type:object
x-kubernetes-preserve-unknown-fields:true
ratelimit:
type:array
items:
type:object
properties:
url:
type:object
x-kubernetes-preserve-unknown-fields:true
ip:
type:object
x-kubernetes-preserve-unknown-fields:true
cookie:
type:object
x-kubernetes-preserve-unknown-fields:true
reputation:
type:object
x-kubernetes-preserve-unknown-fields:true
captcha:
type:array
items:
type:object
x-kubernetes-preserve-unknown-fields:true
properties:
tps:
type:object
properties:
geolocation:
type:object
x-kubernetes-preserve-unknown-fields:true
host:
type:object
x-kubernetes-preserve-unknown-fields:true
ip:
type:object
x-kubernetes-preserve-unknown-fields:true
trapinsertion:
type:object
x-kubernetes-preserve-unknown-fields:true
---
apiVersion:apiextensions.k8s.io/v1
kind:CustomResourceDefinition
metadata:
name:apigatewaypolicies.citrix.com
{{- if .Values.crds.retainOnDelete }}
annotations:
"helm.sh/resource-policy": keep
{{- end }}
spec:
group:citrix.com
names:
kind:apigatewaypolicy
plural:apigatewaypolicies
singular:apigatewaypolicy
scope:Namespaced
versions:
- name:v1beta1
served:true
storage:true
additionalPrinterColumns:
- name:Status
type:string
description:"Current Status of the CRD"
jsonPath:.status.state
- name:Message
type:string
description:"Status Message"
jsonPath:.status.status_message
subresources:
status:{}
schema:
openAPIV3Schema:
type:object
required:[spec]
properties:
status:
type:object
properties:
state:
type:string
status_message:
type:string
spec:
type:object
properties:
api_definition:
type:object
properties:
repository:
type:string
branch:
type:string
oas_secret_ref:
type:string
files:
type:array
items:
type:string
maxLength:127
api_proxy:
type:object
properties:
ipaddress:
type:string
port:
type:integer
protocol:
type:string
secret:
type:string
policies:
type:array
items:
type:object
properties:
name:
type:string
selector:
type:array
items:
type:object
properties:
tags:
type:array
items:
type:string
api:
type:string
method:
type:array
items:
type:string
maxLength:127
upstream:
type:object
properties:
service:
type:string
port:
type:integer
policy_bindings:
type:object
properties:
ratelimit:
type:object
properties:
name:
type:string
waf:
type:object
properties:
name:
type:string
rewritepolicy:
type:object
properties:
name:
type:string
bot:
type:object
properties:
name:
type:string
aaa:
type:array
items:
type:object
properties:
crd_name:
type:string
mappings:
type:array
items:
type:object
properties:
petstore_auth:
type:string
api_key:
type:string
---
apiVersion:apiextensions.k8s.io/v1
kind:CustomResourceDefinition
metadata:
name:corspolicies.citrix.com
{{- if .Values.crds.retainOnDelete }}
annotations:
"helm.sh/resource-policy": keep
{{- end }}
spec:
group:citrix.com
names:
kind:corspolicy
plural:corspolicies
singular:corspolicy
shortNames:
- cp
scope:Namespaced
versions:
- name:v1beta1
served:true
storage:true
subresources:
status:{}
additionalPrinterColumns:
- name:Status
type:string
description:'Current Status of the CRD'
jsonPath:.status.state
- name:Message
type:string
description:'Status Message'
jsonPath:.status.status_message
schema:
openAPIV3Schema:
type:object
properties:
status:
type:object
properties:
state:
type:string
status_message:
type:string
spec:
type:object
properties:
ingressclass:
type:string
description:"Ingress class, if not specified then all citrix ingress controllers in the cluster will process the resource otherwise only the controller with that ingress class will process this resource"
servicenames:
description:'The list of Kubernetes services to which you want to apply the cors policies.'
type:array
items:
type:string
maxLength:63
allow_origin:
description:'Represents list of allowed origins, it is used to screen the “origin” in the cors pre flight request'
type:array
items:
type:string
maxLength:2083
allow_methods:
description:'Indicates which methods are supported by the response’s URL for the purposes of the CORS protocol. This variable will be used to set Access-Control-Allow-Methods in the pre-flight cors response.'
type:array
items:
type:string
maxLength:127
allow_headers:
description:'Indicates which headers are supported by the response’s URL for the purposes of the CORS protocol. This variable will be used to set Access-Control-Allow-Headers in the pre-flight cors response.'
type:array
items:
type:string
maxLength:127
max_age:
description:'Indicates the number of seconds (5 by default) the information provided by the `Access-Control-Allow-Methods` and `Access-Control-Allow-Headers` headers can be cached. This variable will be used to set Access-Control-Max-Age in the pre-flight cors response.'
type:integer
allow_credentials:
description:'Indicates whether the response can be shared when the request’s credentials mode is "include". This variable will be set to Access-Control-Allow-Credentials in the rewrite action.'